Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

DiJrId0u

inserir dados numa JTextArea

Mensagens Recomendadas

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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.