Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/01/2008, 17:13
Avatar de -=ArgoN=-
-=ArgoN=-
 
Fecha de Ingreso: octubre-2005
Ubicación: Barcelona, España
Mensajes: 843
Antigüedad: 18 años, 6 meses
Puntos: 1
Pregunta Clase "nieta" no modifica clase visual "abuela"

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(780580);
            
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(1475131521));
        }
        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

Última edición por -=ArgoN=-; 01/01/2008 a las 17:21