Buenas
Tengo el siguiente método para validar campos vacíos dinamicamente, donde se le envia como parametro el JFrame y detectara los componentes, viendo si tienen la instancia de JTextField y entonces vera si esta vació o no, mi problema es que no me lo reconoce JFrame,lo debugeo y ni agarra la cantidad de objetos ni reconoce ninguna instancia o sea no valida nada, pero si cambio el parametro por JPanel si me funciona, ayuda porfa D:!?
public boolean ValidarCamposVacios(JFrame form)
{
boolean vacio = true;
for(int i = 0; form.getComponents().length>i;i++)
{
if(form.getComponents()[i]instanceof JTextField)
{
if(((JTextField)form.getComponents()[i]).getText().trim().length() == 0)
{
vacio = false;
break;
}
}
if(form.getComponents()[i] instanceof JPasswordField)
{
if(((JPasswordField)form.getComponents()[i]).getText().trim().length() == 0)
{
vacio = false;
}
}
}
return vacio;
}
No se si te servirá esto, pero prueba a crear una clase asi (solo es una idea, haz todas las modificaciones que necesites)
public class Test extends JFrame {
public boolean ValidarCamposVacios()
{
boolean vacio = true;
for(int i = 0; getComponents().length>i;i++)
{
if(getComponents()[i]instanceof JTextField)
{
if(((JTextField)getComponents()[i]).getText().trim().length() == 0)
{
vacio = false;
break;
}
}
if(getComponents()[i] instanceof JPasswordField)
{
if(((JPasswordField)getComponents()[i]).getText().trim().length() == 0)
{
vacio = false;
}
}
}
return vacio;
}
}
Creas un objeto de tu nueva clase, y podrás utilizar todos los metodos de JFrame ademas de tu metodo que has creado.
Test a = new Test();
System.out.println(a.ValidarCamposVacios());
Saludos
Ese break es una manera un poco sucia de salir del bucle
Gracias por responder :)
Ya lo he solucionado poniendo getContentPane() antes del getComponents() y simplifique un poco el codigo, me ha quedado así
public boolean ValidarCamposVacios(JFrame form)
{
boolean vacio = true;
for(int i = 0; form.getContentPane().getComponents().length>i;i++)
{
if(form.getContentPane().getComponents()[i]instanceof JTextField || form.getContentPane().getComponents()[i] instanceof JPasswordField )
{
if(((JTextField)form.getContentPane().getComponents()[i]).getText().trim().length() == 0 )
{
vacio = false;
break;
}
}
}
return vacio;
}