Limpar componentes de texto em um Frame

Pessoal, tenho a seguinte função para limpar os campos de texto do meu Frame:

protected void limpaCampos(Container container){ for(Component component : container.getComponents()) { if((component instanceof JTextField) || (component instanceof JFormattedTextField)) { ((JTextComponent)component).setText(""); } } }

Só que tenho uma JTextArea em um JScrollPane, e não consegui colocar uma condição nessa função para limpar a JTextArea tb…

Coloquei as seguintes condições, mas não funcionou:

if(component instanceof JTextArea) { ((JTextArea)component).setText(""); }

if(component instanceof JScrollPane) { ((JTextArea)((JScrollPane)component).getComponent(0)).setText(""); }

Alguém pode me ajudar???

Encontre outro método !

E jogo meu método fora???

Tem que ter uma solução pra isso, não é possível…

Olá!

Estava fazendo uma classe que cuidaria dessa limpeza do formulário e aqui deu certo fazendo assim:


//pegando o seu exemplo
 protected static void limpaCampos(Container container){
        for(Component component : container.getComponents()) {
            if((component instanceof JTextField) || (component instanceof JFormattedTextField)) {
                ((JTextComponent)component).setText("");
            } else if (component instanceof JScrollPane) {                
                ((JTextArea) ((JScrollPane) component).getViewport().getComponent(0)).setText("");
            }
        }
    }

Acima foi apenas um exemplo usando o que já tenha feito, mas tome cuidado com o cast do JTextArea :smiley: se tiver algum component dentro do JScrollPane que não seja TextArea vai dar um CastException…

Até

Opa, valeu ai pela ajuda…t+