• Viernes 8 de Noviembre de 2024, 04:40

Autor Tema:  Re: Recuperar Pantalla  (Leído 878 veces)

laura_mg

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Re: Recuperar Pantalla
« en: Lunes 15 de Octubre de 2007, 18:58 »
0
Hola amigos, necesito vuestra ayuda.
Mi problema es el siguiente:
Quiero hacer una aplicación que tiene una clase "Principal" y otras clases (en ficheros diferentes). En la clase Principal creo una serie de campos (JTextField) y los represento por pantalla (en forma de tabla). Además, para cada JTextField creo una instancia de otra clase (clase2). Esta clase2 crea a su vez otra serie de campos JTextField.
Cuando pulso una celda de la "Tabla" de la clase Principal (tabla1) se me tiene que mostrar en la misma ventana y en el mismo espacio la "Tabla" de la clase2 (tabla2). Hasta aquí todo bien, ya que lo hago quitando el panel y poniendo el otro. El problema está cuando estoy en tabla2, q además tiene un botón "Guardar". Si pulso este botón quiero que me vuelva a la tabla1; es decir, se quite de la ventana el panel actual y se vuelva a poner el panel primero. La cuestión es que no se cómo hacer esta redirección. Para que os hagáis una idea os pongo unos fragmentos de código:
public class Principal implements ActionListener, MouseListener{
Public Principal(){    
 //consulto la B.D. y cojo datos
 ………    
 tablaPpal = new JTextField[MAX_COL];
       panel = new JPanel();
       panel.setLayout(new GridLayout(i,MAX_COL));
       
 for(int k = 0; k<i; k++){
            for(int l = 0; l<MAX_COL; l++){
                tablaPpal [k][l] = new JTextField();
                panel.add(tablaPpal[k][l]);
}
 }
      ………….
tablaSecun = new CrearTabla1[MAX_COL];
         for(int k=0; k<i; k++){
            for(int l=0; l<MAX_COL; l++){
                tablaSecun[k][l] = new CrearTabla1();
            }
        }
}//Constructor

public static void main(String [] args){
      arrancar(); //para arrancar la conexión con la BD.
Júrame f = new Júrame();
Principal princi = new Principal();
general.add(panel);
general.updateUI();
f.getContentPane().add(general);
f.pack();
f.setVisible(true);
}//main()

}//fin Clase Principal


-----------------------------En otro fichero-------------------

public class CrearTabla1 implements MouseListener, ActionListener{
public CrearTabla1(){
        tablaSecundaria = new JTextField[MAX_F][MAX_C];
        panelSecun = new JPanel();
        panelSecun.setLayout(new BorderLayout());
        guardar = new JButton("Guardar");
        guardar.addActionListener(this);
        panelTablaSecun = new JPanel();
        panelTablaSecun.setLayout(new GridLayout(MAX_F,MAX_C));
  for(int i=0; i<MAX_F; i++){//inicializamos todos los campos de texto
            for(int j=0; j<MAX_C; j++){
                tablaSecundaria[j] = new JTextField();
            }
  }
  for(int k=0; k<MAX_F; k++){
            for(int l=0; l<MAX_C; l++){
                panelTablaSecun.add(tablaSecundaria[k][l]);
            }
        }
}//Constructor

public JPanel mostrarTabla(){
       
        panelGeneral.removeAll();
        panelGeneral.add(panelSecun);
        panelGeneral.updateUI();
        System.out.println("PanelGeneral: "+panelGeneral);
        return panelGeneral;
    }
public void actionPerformed(ActionEvent me){
        //para los eventos del botón "Guardar"
     //AQUÍ ES DONDE TENGO QUE VOLVER A MOSTRAR LA “TABLA1”      
    }

Si alguien puede ayudarme se lo agradecería mucho.
Un saludo.