Dúvida do jTextArea

1 resposta
daniel_vieira

Criei uma classe para manipular meus componentes dentro dessa classe eu limpo os campos.
segue o código abaixo parte do código.

for (int cont=0;cont<=panel.getComponentCount();cont++){

if (panel.getComponent(cont) instanceof JTextArea){

JTextArea jta=(JTextArea) panel.getComponent(cont);

jta.setText("");

}

}

Esse codigo com outros componentes tipo jtextfield da certo, so que com jtextarea não da certo alguém sabe me dizer o porque???

Daniel Vieira

1 Resposta

Ironlynx

Sua JTextArea pode estar anexada a um JScrollPane, o que não funcionaria mesmo, faça mais ou - assim:

public void limparCampos(Container container) { Component components[] = container.getComponents(); for (Component component : components) { if (component instanceof JFormattedTextField) { JFormattedTextField field = (JFormattedTextField) component; field.setValue(null); } else if (component instanceof JTextField) { JTextField field = (JTextField) component; field.setText(""); } else if (component instanceof JTextArea) { JTextArea area = (JTextArea) component; area.setText(""); } else if (component instanceof JScrollPane) { //se houver JTextArea junto a um ScrollPane ((JTextArea) ((JScrollPane) component).getViewport().getComponent(0)).setText(""); } } }
Mas se não houver uma JTextArea a um JScrollPane apague o último if, para não dar um CastException…

Criado 26 de abril de 2008
Ultima resposta 27 de abr. de 2008
Respostas 1
Participantes 2