Hola a tod@s, gracias por leer mi pregunta.
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();
}
}
Pantalla.java 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);
//[...]
}
//[...]
}
Clients.java 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