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.