Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
DiJrId0u

inserir dados numa JTextArea

Recommended Posts

DiJrId0u

Caros amigos,

estou com uma duvida ao inserir dados numa JTextArea.

A minha JTextArea vai ter obrigacionalmente 3 colunas.

JTextArea textArea = new JTextArea(5, 3);
this.textArea.setEditable(false);
this.add(this.scrollOption(this.textArea));

Agora, preciso de adicionar em cada linha da minha JTextArea, 3 variáveis diferentes em cada uma das colunas.

qual a melhor forma de o fazer?

Inicialmente, defini-a com 5 linhas, mas eventualmente poderei necessitar de mais. A JTextArea, está a ser adicionada dentro de um metodo que me permite um scroll na mesma.

Cumprimentos a todos

Share this post


Link to post
Share on other sites
Knitter

Colunas? De que modo é que estás a tentar usar as colunas da JTextArea?

Esse construtor apenas define o tamanho base da JTextArea, o número de colunas é apenas o número de colunas visíveis e não afecta o texto que lá colocas dentro, nem tens métodos para adicionar texto à coluna X de uma JTextArea.

Se necessitares de mais linhas basta usares o método set respectivo, mas novamente, o número de linhas é apenas uma informação visual, não existe qualquer limite ao texto nem qualquer relação entre a posição do texto ou o número de linhas e colunas de uma JTextArea, é uma área de texto onde colocas texto livremente.

Share this post


Link to post
Share on other sites
DiJrId0u

Segundo a documentação da sun, existe um construtor que recebe 2 parametros inteiros, os quais definem o numero de linhas e colunas. devo estar a fazer confusão.

http://java.sun.com/javase/7/docs/api/javax/swing/JTextArea.html#JTextArea(int, int)

JTextArea

public JTextArea(int rows,

                int columns)Constructs a new empty TextArea with the specified number of rows and columns. A default model is created, and the initial string is null.

Parameters:

rows - the number of rows >= 0

columns - the number of columns >= 0

Throws:

IllegalArgumentException - if the rows or columns arguments are negative.

Assim sendo, necessito de agregar 3 variaveis numa string, e adicionar essa string à minha JTextArea linha a linha.

Cumps

Share this post


Link to post
Share on other sites
Knitter

Sim, esse construtor existe, mas por isso é que perguntei o que é que queres fazer com linhas e colunas. Esse construtor define apenas o número de linhas e de colunas que estão visíveis. Essas linhas e colunas são dois valores que afectam apenas o aspecto da área de texto e nunca o seu conteúdo.

Se fores ao tutorial de Java da sun, tens lá a descrição do objectivo desses valores:

The two arguments to the JTextArea constructor are hints as to the number of rows and columns, respectively, that the text area should display. The scroll pane that contains the text area pays attention to these hints when determining how big the scroll pane should be.

Como se pode ler, são apenas pistas para um eventual JScrollPane que contenha a área de texto.

De outra forma, se eu definir uma área de texto com 10 colunas, posso colocar lá texto que ocupe 20 colunas. Se existir um JScrollPane, vão aparecer barras de deslocamento para eu fazer scroll, senão existir, só vou ver o texto contido em 10 colunas, que é aproximadamente 10 caracteres, o resto do texto nunca vai aparecer, mas está lá.

Além disso, não tens método nenhum para escrever texto para a coluna X ou para a linha Y, nem de ir buscar texto dando uma coluna e uma linha, porque para todos os efeitos, uma área de texto não tem colunas nem linhas, é apenas uma área de texto livre. Tu crias linhas adicionando o caractere '\n' no fim para efectuar uma mudança de linha, mas o conteúdo real da área de texto é uma única String.

Com o que indicaste, pergunto porque não estás a usar uma tabela ou, no mínimo uma lista. Com um JTable tens linhas e colunas, e parece fazer mais sentido para o que pretendes, com uma JList, pelo menos linhas tens, colunas é que não. Creio que uma JTable seria uma solução mais adequada ou há algum impedimento?

Share this post


Link to post
Share on other sites
DiJrId0u

Julgo ter ficado esclarecido. De facto há um impedimento que me obriga a usar JTextArea. É para avaliação escolar e há essa obrigação. No entanto, julgo que, com uma string consigo agregar as 3 variaveis que quero, e insiro essa string + /n na minha JTextArea.

o Programa consiste numa máquina de venda de produtos, em que tenho uma lista de produtos disponivel, botões (do tipo insert coin) com o valor das moedas, botoes para efectuar a compra e cancelar e com 2 labels que indicam a quantidade de dinheiro inserida e o troco de uma determinada compra. o Objectivo é, após compra, registar o nome do produto, o seu preço e o troco da compra, na JTextArea...

Problema resolvido. tnks!!

Cumprimentos e obrigado por manterem o forum activo. Força malta...

Henrique

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.