Dúvida com JTextArea

6 respostas
J

Boa tarde pessoal,

Queria fazer o seguinte, tenho um item de meu menu que apenas vai mostrar uma informação na tela, eu tava usando um JOptionPane.showMessageDialog, mas como a informação é um pouco grande, acho mais legal numa JTextArea, só que não to conseguindo colocá-la pra funcionar, segue trecho do código que preciso alterar… Tentei Alterar apenas o “miolo” deste código abaixo, tirando JOptionPane.showMessage… mas não deu…

menuInfo.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog(rootPane, "ajklsdfjklaçsjdfklaslkdflasjdlfkasjdkljfkasjdklfjaskldfjklasdjfkljasld" + "jkasdjfkljaskldfjklsadfkljaskldjfklasjdklfjaskldjfklasjdfkljklasçdfjkljaskldfjklasjkldfjklasjdfkljlasjdfkljasdf"); } });

O que quero é que a mensagem que acima ta neste JOptionPane.showMessageDialog, apareça numa área de texto…

Grato,
Jeferson

6 Respostas

Allan_Barcelos
JTextArea ta;
JScrollPane scrollPane;

//inicio do construtor

ta = new JTextArea(7,30);
ta.setEditable(true); // true pode editar, false não.
scrollPane = new JScrollPane(ta);

//dentro do construtor chamar o método para preencher o JTextArea.

JPanel buttonPanel = new JPanel(); 
buttonPanel.add(scrollPane);
add(buttonPanel, BorderLayout.PAGE_START);


//final do construtor

//Tu usa o método append do JTextArea para adicionar uma String pro TextArea.

Faz fora do método do ActionListener…

J
Allan Barcelos:
JTextArea ta;
JScrollPane scrollPane;

//inicio do construtor

ta = new JTextArea(7,30);
ta.setEditable(true); // true pode editar, false não.
scrollPane = new JScrollPane(ta);

//dentro do construtor chamar o método para preencher o JTextArea.

JPanel buttonPanel = new JPanel(); 
buttonPanel.add(scrollPane);
add(buttonPanel, BorderLayout.PAGE_START);


//final do construtor

//Tu usa o método append do JTextArea para adicionar uma String pro TextArea.

Faz fora do método do ActionListener..

Grato, mas (desculpe a falta de conhecimento.. :) ), mas não saiu nada aqui, veja se eu entendi....

Como quero que isso seja chamado a aprtir de um item de menu eu tenho que:

1 - Declarar este trecho antes do construtor...
# JTextArea ta;  
# JScrollPane scrollPane;
2 - Isso tudo no construtor
ta = new  JTextArea(7,30);  
 ta.setEditable(true); // true pode editar, false não.  
 scrollPane = new JScrollPane(ta);  
   
 //dentro do construtor chamar o método para preencher o JTextArea.  
   
 JPanel buttonPanel = new JPanel();   
 buttonPanel.add(scrollPane);  
 add(buttonPanel, BorderLayout.PAGE_START);
3 - Dentro do do ActionPerformed que ta dentro do ActionListener usar ....
ta.append("adsgfasdfasdfasdfasdfasdfsadfasdfsda...")

Pois só quero que o text area exiba uma informação pré-determinada, como um ajuda de um programa, clica naquele menu abre um textarea com a String lá dentro(não precisa receber nada durante a aexecução)....

Grato,
Jeferson

Allan_Barcelos

cara é só colocar então dentro do construtor seuTextArea.append(“sua menssagem”);
quando abrir a janela ja vai ter a sua menssagem como conteudo do TextArea

J

Allan Barcelos:
cara é só colocar então dentro do construtor seuTextArea.append(“sua menssagem”);
quando abrir a janela ja vai ter a sua menssagem como conteudo do TextArea

Cara, to meio perdido, pois to aprendendo interface gráfica ainda… Até entendi o que tu disse, mas é que no caso eu preciso clicar em um menu e numa opção do menu( menuItem) tenho que clicar e abrir este textArea… porisso achei que tinha que fazer o append dentro do ActioListener e talz…

Um exemplo, meu programinha tem um menu abrir, onde uma opção “abrir” chama um fileChooser pra escolher o arquivo… outra opção deste menu, mais abaixo tem sair, que fecha o programa, aí em outro menu, tem uma opção que é chamar este textArea com a mensagem…

Espero que tenha me expressado de uma maneira clara…

Grato,
Jeferson

Allan_Barcelos

Para chamar o JTextArea:

JTextArea ta;
		JScrollPane scrollPane;
		
		public PanelHistorico(JFrame f){
		
			frame = f;
			
			 ta = new JTextArea(7,30); // cria o JTextArea
			 ta.setEditable(false); // não permite editar esse JTextArea
			 
 this.preencheArea(); // chama um método para preencher o JTextArea com a sua string pré definida, pode usar ta.append("sua String"); no lugar do método.
			 
			 scrollPane = new JScrollPane(ta); // cria um ScrollPane para o JTextField
			 

	        JPanel buttonPanel = new JPanel(); // cria um panel para conter o scrollField que ja tem o JTextField
	        buttonPanel.setLayout(new GridLayout()); // cria um Layout
	        buttonPanel.add(scrollPane); // adiciona ao panel o scroll panel
	        add(buttonPanel, BorderLayout.PAGE_START); // organiza na janela
		}

		public void preencheArea(){
                                ta.append("sua String"); // ou qualquer coisa do tipo
		}
		
		public void actionPerformed(ActionEvent e) {
		}
			
		}

	}
Allan_Barcelos

Para quando clicar no menu abrir o Frame com o JTextField tu tem que fazer na classe do menu, e la no método do ActionPerformed, colocar essa ação no botão que abre o JTextField, eu acredito que seja mais facil criar uma janela só pro JTextField, como nesse exemplo que eu passei acima, e na classe do menu por exemplo:

publc class menu{
..
..
..
// todo os metodos e talz..

public void actionPerformed(ActionEvent e) {   
// todos os efeitos dos outros botões..
if(e.getSource() == botaoDoJTextArea){  // se o botão que foi ativado é o do JTextArea
FrameDoTextArea f = new FrameDoTextArea(); // abre a janela do JTextArea
}
    }
Criado 6 de junho de 2010
Ultima resposta 6 de jun. de 2010
Respostas 6
Participantes 2