Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/04/2010, 12:41
krakoski
 
Fecha de Ingreso: abril-2010
Mensajes: 11
Antigüedad: 14 años
Puntos: 0
Problemas al cambiar de panel en JSplitPane

Hola a todos. Tengo un problema con un panel, el cual tiene dos paneles(uno llamado derecho y otro izquierdo) "unidos" mediante un JSplitPane. La idea es que el panel derecho tiene una lista que cada vez que pulsamos una de las opciones, este mismo panel cambia a otro.Pero lo único que he conseguido es q se me cambie el panel durante segundos, y una vez pasado este tiempo vuelva al panel inicial sin que se lo indique. He probado intentanto trabajar con otro thread pero como el JSplitPane esta en el Thread main al final pasa lo mismo. ¿Cómo podría solucionar este problema?
Aqui dejo la clase que se encarga de la construcción del panel(pPrincipal) que tiene al JSplitpane, al que se le llama cada vez que hacemos la modificación del panel derecho.

Muchas Gracias.

//Clase que llamamos para modificar el Panel Principal.

public void ConstruccionPaneles() {

//Panel Izquierdo que nunca se modifica
panelIz = PanelMstElectron();

//Panel Derecho
//Comprobamos si estan activos un panel u otro.
if(panelIndiceB){
//Este es el panel derecho inicial.
panelDe = PanelIndice();
}
else if(panelHolaB){
//Ponemos a true la variable que nos indica que ya ha habido un cambio de paneles
cambioPanel = true;
//Borramos el anterior panel derecho
pPrincipal.remove(panelDe);
ScrollDe.remove(panelDe);
ScrollDe.validate();
splitPane.remove(panelDe);
splitPane.validate();
//nuevo panel derecho
panelDe = PanelHola();
}

//Scroll para el panel izq
ScrollIz = new JScrollPane(panelIz);
ScrollIz.setViewportView(panelIz);
pPrincipal.add(ScrollIz);
//Scroll para el panel derecho
ScrollDe = new JScrollPane(panelDe);
ScrollDe.setViewportView(panelDe);
pPrincipal.add(ScrollDe);
if(cambioPanel){
ScrollDe.validate();
}

//Añadimos un JSpitPanel entre el panel de la izq. y el de la der.
splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
splitPane.setLeftComponent(ScrollIz);
splitPane.setRightComponent(ScrollDe);

splitPane.setOneTouchExpandable(true);
pPrincipal.add(splitPane);
if(cambioPanel){
splitPane.validate();
pPrincipal.validate();
}

//Proporcionamos el tamaño minimo de los dos componentes del Split Panel
ScrollIz.setMinimumSize(new Dimension(300,100));
ScrollDe.setMinimumSize(new Dimension(200,100));

//Se establece la localizacion inicial y el tamaño del divisor
splitPane.setDividerLocation(484);
splitPane.setDividerSize(7);
}



La libertad estimula el espíritu de los hombres fuertes.