Saber Numero de Componentes Declarados...

Iniciado por gasoft, 30 Agosto 2010, 05:03 AM

0 Miembros y 1 Visitante están viendo este tema.

gasoft

Hola Amigos , mi pregunta es ... como lo dice el Titulo  ... es posible saber el numero de componentes que se encuentren instanciados ? ..

Por Ejemplo puedo saber el Numero de JTexField que se encuentre instanciados ?

Gracias por Responder

egyware

Si se puede, pero debes tener el componente padre quien los contiene.
Creo que se usa la función "getComponents()"
No recuerdo muy bien busca en la documentación.

Saludos ;)

gasoft

Gracias Amigo egyware por responder ...

Si de hecho puedo saber el numero de componentes con el getComponents() .. pero como tu dices ... deben de estar agregados a un Contenedor ... Mi pregunta es si es posible saber el numero antes de agregarlos a un contenedor. Apenas se instancien.

egyware

#3
Creo que no, a menos que hagas algo por tu cuenta.

por ejemplo
Código (java) [Seleccionar]

public class Count{
  private static int instancias;
  public Count(){
     instancias++;
  }
  public static int getInstances(){
    return instancias;
  }
}


Por lo menos no se me ocurre otra idea, Saludos

Leyer

La idea de egyware es valida, es como crear un jtextfield personalizado, creas una nueva clase que extienda de JTextField y declaras el contador y listo, la utilizas normalmente.

También entra en juego reflection , pero no creo que quieras eso, ademas de que tus instancias tienen que estar fuera del constructor y deben de tener visibilidad publica.

Un saludo.

gasoft

Amigos gracias por la respuesta....

Seria posible un ejemplito para comprender mejor el tema? Gracias :)

Leyer

Código (java) [Seleccionar]

public class JTextFiel extends javax.swing.JTextField{
private static final long serialVersionUID = 1L;

private static int instancias;

  public JTextFiel(){
     instancias++;
  }
  public static int getInstances(){
    return instancias;
  }
  public static void main(String args[]){
new JTextFiel();
new JTextFiel();
new JTextFiel();
System.out.println(JTextFiel.getInstances());
  }