Como faço para apagar o conteúdo de uma JTextArea? Fiz um formulário em jFrame possui vários JTextFields e JTextArea, porém só consigo apagar os JTextFields ao executar a função abaixo

4 respostas
javajframe
tatiaguilar
protected void limpar(){

for (int i=0; i < getContentPane().getComponentCount(); i++) {

//varre todos os componentes
Component c = getContentPane().getComponent(i);

                if (c instanceof JTextField){
                    //apaga os valores
                    JTextField campo = (JTextField) c;
                    campo.setText(null);
                } 
                
    }

}

4 Respostas

TerraSkilll

Tente:

Component c = getContentPane().getComponent(i);

if (c instanceof JTextComponent){
  //apaga os valores
  JTextComponent campo = (JTextComponent) c;
  campo.setText(null);
}

JTextComponent é a classe pai de JTextField e JTextArea, e contém o método setText.

Se isso não funcionar, você terá que criar um código similar para o JTextArea. Algo como:

if (c instanceof JTextArea){
  //apaga os valores
  JTextArea campo = (JTextArea) c;
  campo.setText(null);
}

Abraço.

tatiaguilar

Olá, TerraSkill! Implementei da maneira que você me falou, porém nenhuma delas apagou o jTextArea, apenas os jTextField. Coloquei o jTextArea porque meu formulário precisa um grande número de informações nos campos que coloquei os JTextArea. Será que tem alguma forma de fazer os jTextFields receberem uma quantidade maior de palavras? Ou então fazer meus JTextAreas receberem " "(vazio)??

TerraSkilll

Sim, você pode experimentar colocar “” em vez de null. Você também pode depurar e ver se os JtextAreas estão sendo localizados por esse loop.

O que você está fazendo que precisa de campos de texto tão longos?

Abraço.

tatiaguilar

Fiz um formulário para preenchimento de currículo. No campo das experiências profissionais, tem um JTextArea com as atividades exercidas pela pessoa durante o emprego.

Criado 28 de novembro de 2019
Ultima resposta 28 de nov. de 2019
Respostas 4
Participantes 2