Tengo uno de esos errores q me tienen odiando a medio mundo..., he hecho varios formularios con lo mismo, pero en este me da un drama tremendo yo no se como arreglarlo, por favor ayudenme...
Se trata de un cardLayout, que por alguna razon no me funciona bien dentro de un "public void valueChanged(ListSelectionEvent e)"
Ahi va el codigo, el erro me sale donde he puesto esta cara:
public class RootDelfos extends JPanel implements ListSelectionListener{
static public void main(String[]args){
JFrame frame = new JFrame("Prueba");
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {System.exit(0);}
});
frame.getContentPane().add(new RootDelfos(),
BorderLayout.CENTER);
frame.setSize(600, 400);
frame.setVisible(true);
}
JSplitPane split;
JList lista;
Cursos cur;
JPanel rota;
CardLayout card=new CardLayout();
Cursos cur2;
Cursos cur3=new Cursos();
public RootDelfos(){
String[] comp=new String[5];
comp[0]="Conectar con BD";
comp[1]="Cursos individuales";
comp[2]="Cursos por bloque";
comp[3]="Usuarios";
comp[4]="Cambiar Clave";//algo me va a faltar por ahi o no?
cur=new Cursos();
lista=new JList(comp);
lista.setSelectedIndex(0);
lista.addListSelectionListener(this);
JScrollPane scroll = new JScrollPane(lista);
cur2=new Cursos();
JPanel rota=new JPanel();
rota.setBorder(BorderFactory.createEmptyBorder(
30, //top
30, //left
10, //bottom
30) //right
);
rota.setLayout(card);
rota.add("uno", cur);
rota.add("dos", cur2);
rota.add("tres", cur3);
split = new JSplitPane(split.HORIZONTAL_SPLIT);
split.setLeftComponent(scroll);
split.setRightComponent(rota);
split.setOneTouchExpandable(true);
//tamaño minimo para cada lado del split
Dimension minimumSize = new Dimension(500,300);
lista.setMinimumSize(minimumSize);
rota.setMinimumSize(minimumSize);
//tamaño de la division del split y de su ancho
split.setDividerLocation(150);
split.setDividerSize(10);
//tamaño preferible del split
split.setPreferredSize(new Dimension(400, 200));
setLayout(new GridLayout(0,1));
add(split);
}
public void valueChanged(ListSelectionEvent e) {
if (e.getValueIsAdjusting())
return;
if (lista.isSelectionEmpty()) {return;}
int i = lista.getSelectedIndex();
if(i==1){
CardLayout cl = (CardLayout)(rota.getLayout());
cl.show(rota, "uno");//en estas lineas esta el drama
}
}
}
Eso, cabe destacar que el error q me manda es un NullPointer...
Les ruego q me ayuden pq ya estoy chato, y no le encuentro el drama... gracias....