Função VerficaVazio

Pessoal, gostaria de saber se alguém tem alguma função onde eu possa percorrer todos os campos da tela, verficando se eles estão preenchidos ou não. Caso algum não esteja exibir uma msg de erro.

[quote=tdqr]Pessoal, gostaria de saber se alguém tem alguma função onde eu possa percorrer todos os campos da tela, verficando se eles estão preenchidos ou não. Caso algum não esteja exibir uma msg de erro.

[/quote]

Ué, vai iterando pelos componentes de entrada de informações e checando um a um oras… achando irregularidade exiba alguma mensagem de erro usando a classe Dialog e variantes.

Inté.

O que tem que ser feito eu sei, não sei como fazer.

Estou começando a aprender java

Duas dicas… se um Component Swing extende Container ele vai ter o método getComponents que retornar todos os componentes dentro deste.
Se um componente extende JTextComponent esse componente tem o método getText e voce pode verifica-lo se é vazio.

public void olhaTela(Container container){
for(Component comp : container.getComponents()){
if(comp instanceof JTextComponent){
 String texto = comp.getText();
 //faz algo com o texto
}
if(comp instanceof Container){
//ele é um container.. talvez um sub-panel voce tem que percorre-lo também
}
}
}

Com mais algumas linhas voce completa esse código e tem o que voce quer… mas é legal tentar fazer… só falta repercusão e a validação do texto que voce quer.

Tendo como base o código de Mark_Ameba, uma dica é: caso o componente seja um Container é use a recursividade.

Eu não consigo acessar o getText()

Será que tenho que fazer Typecast? Como seria?

Sim, deve fazer um cast para JTextComponent. Algo como:

String texto = (JTextComponent) comp.getText();

Pois é , foi a primeira coisa que tentei, mas ele não me dá a opção do GetText()

Vou colar o código que fiz aqui, pois fiz algumas adaptações:

public void VerificaTela(Component[] components)
{
for(Component comp : painel.getComponents())
{
if(comp instanceof JTextComponent)
{
String texto = comp.getText(); //linha que não funciona, pois não existe o getText()
if(texto.equals(""))
{
JOptionPane.showMessageDialog(null,
" Campo Inválido!!! ",
" *** E R R O *** ",
JOptionPane.PLAIN_MESSAGE);
}
}
}
}

[quote=tdqr]Vou colar o código que fiz aqui, pois fiz algumas adaptações:

public void VerificaTela(Component[] components)
{
for(Component comp : painel.getComponents())
{
if(comp instanceof JTextComponent)
{
String texto = comp.getText(); //linha que não funciona, pois não existe o getText()
if(texto.equals(""))
{
JOptionPane.showMessageDialog(null,
" Campo Inválido!!! ",
" *** E R R O *** ",
JOptionPane.PLAIN_MESSAGE);
}
}
}
}[/quote]
:?:
Mas você não fez o cast no código acima. Apenas chamou o método. Troque:

String texto = comp.getText();

Por:

String texto = (JTextComponent) comp.getText();

Ahhh… e sempre que for postar seu código, use as tags e . Por exemplo:

seu código aqui!

Tem um tutorial completo no índice da seção de Java Básico. Dê uma olhada depois.

Eu fiz o cast dessa forma sim , apenas esqueci de escrever no código em que eu enviei…

Tem alguma ideia do que pode estar errado?

Ahhh… desculpe! Faltaram os parênteses no lugar certo. O correto é:

String texto = ((JTextComponent) comp).getText(); 

Sorry… esqueci esse detalhe… eu fiz correndo só pra base mesmo. Ainda bem que voce ta entendendo.

Beleza, agora funcionou!

Obrigado