Duvidas Sobre Limpar Campos

6 respostas
M

Olá galera tudo blz?
Minha duvida é a seguinte, eu tenho um método em um botão que o a clicar em inserir ele tinha que apagar todos os campos.

public void aoClicarInserir(){
       for (Component c: getComponents()){
             if (c instanceof JTextField)
                 ((JTextField) c).setText("");
             
            else if (c instanceof JComboBox)
                ((JComboBox) c).removeAllItems();      
       }      
    }

Eu ja conferi o código mas não sei onde eu estou errando…
Alguem pode me ajudar?
Abraços

6 Respostas

1112

Em qual classe está esse método? Se for em uma classe que herde de JFrame, não vai dar certo, pois os componentes gráficos não são adicionados ao JFrame, são adicionados ao contentPane do JFrame.

M

Você poderia me explicar melhor?

1112

Quando você adicionou seus componentes, você não os adicionou diretamente ao JFrame, certo? Você deve ter feito algo como:

jframe.getContentPane().add( meuJTextField1 );
jframe.getContentPane().add( meuJTextField2 );
jframe.getContentPane().add( meuJTextField3 );

Então, na hora de iterar, você não pode iterar sobre os componentes do JFrame, tem que iterar sobre os componentes do contentPane. Ou seja:

M

Ah sim entendi…
Mas ainda dá erro… Tipo dá o seguinte erro.

non-static method getContentPane() cannot be referenced from a static context

isso significa que eu vou ter que colocar static antes de cada jtextfield?

T

Ele não escreveu JFrame.getContextPane() e sim jframe.getContextPane() (ele não sabia qual o nome da variável que é uma instância de uma classe derivada de JFrame.) No seu caso daria para escrever só getContextPane().

M

Sim eu fiz o teste com das duas formas… Mas nada ainda…

Criado 9 de maio de 2006
Ultima resposta 9 de mai. de 2006
Respostas 6
Participantes 3