SoloCodigo
		Programación General => Java => Mensaje iniciado por: laura_mg en Lunes 15 de Octubre de 2007, 18:58
		
			
			- 
				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.