Resulta que tengo una jerarquía de clases mas o menos como esta:
Pantalla (clase visual)
|
|
V
Controlador
|
|
V
Clients
Controlador extiende Pantalla y Clients a su vez extiende Controlador.
En la clase Clients estoy intentando modificar un elemento de su clase "abuela" Pantalla. Esta clase Pantalla es "visual" es decir que crea todos los componentes que se ven por pantalla.
Para iniciar la aplicación, utilizo la clase con un Main, llamada Iniciar.
Para interactuar con estos componentes hay un metodo publico para cada componente, el cual llamo desde Clients.
Un detalle es que cuando el código esta implementado en la clase hija todo funciona bien, pero cuando lo meto en la clase "nieta" ya deja de funcionar todo.
Por si quieren ver algo del código, les muestro algunos fragmentos, ya que es bastante largo:
Iniciar.java
Código PHP:
public class Iniciar {
public static void main(String[] args) {
new Controlador();
Clients c1 = new Clients();
c1.init();
}
}
Código PHP:
public class Pantalla {
private JFrame jFrame = null;
private JPanel jContentPane = null;
private JTabbedPane jTabbedPane = null;
private JPanel jPanelClients = null;
private JTextField jTextFieldNom = null;
//[...]
/**
* This method initializes jFrame
*
* @return javax.swing.JFrame
*/
public JFrame getJFrame() {
if (jFrame == null) {
jFrame = new JFrame();
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jFrame.setSize(780, 580);
jFrame.setContentPane(getJContentPane());
}
return jFrame;
}
/**
* This method initializes jTextFieldNom
*
* @return javax.swing.JTextField
*/
public JTextField getJTextFieldNom() {
if (jTextFieldNom == null) {
jTextFieldNom = new JTextField();
jTextFieldNom.setBounds(new Rectangle(147, 51, 315, 21));
}
return jTextFieldNom;
}
//[...]
}
Controlador.java
Código PHP:
public class Controlador extends Pantalla {
//[...]
public Controlador(int i) {}
public Controlador(){
super();
getJFrame().setVisible(true);
//[...]
}
//[...]
}
Código PHP:
public class Clients extends Controlador {
//[...]
public Clients(){
super(0);
//[...]
}
public void init(){
//aquí hago todas las gestiones que no me funcionan, por ejemplo:
getJTextFieldNom().setText("prueba");
}
//[...]
}
Espero que alguien sepa decirme que es lo que hago mal. Muchísimas gracias!
Feliz año 2008!
ArgoN