Foros del Web » Programación para mayores de 30 ;) » Java »

error odioso!!!

Estas en el tema de error odioso!!! en el foro de Java en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 08/05/2003, 14:40
 
Fecha de Ingreso: junio-2002
Mensajes: 122
Antigüedad: 21 años, 10 meses
Puntos: 3
error odioso!!!

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....
__________________
Matematicamente...
...El boucheffiano...
  #2 (permalink)  
Antiguo 09/05/2003, 02:45
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Primero advertirte que tengo muy oxidado el Java (hace muchisimo tiempo que no programo con el) y tampoco nunca he sido un experto en el. Asi que quizas lo que te digo no tiene ningun sentido.

Creo que tu problema es que declaras 2 veces rota, y una de ellas dentro de la funcion donde le asignas el valor. Es decir, tienes por un lado

Cursos cur;
JPanel rota;
CardLayout card=new CardLayout();

y por otro

cur2=new Cursos();
JPanel rota=new JPanel();
rota.setBorder(BorderFactory.createEmptyBorder(

Yo creo que de esta forma estas creando dos variables rota con distintos ambitos y solo estas dando valor a la que tiene de ambito la funcion (2 caso). Creo que la solucion seria:

cur2=new Cursos();
rota=new JPanel();
rota.setBorder(BorderFactory.createEmptyBorder(

que es lo mismo que haces con otras variables (cur2, ...).

En fin, que espero haberte ayudado.

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 09/05/2003, 08:16
 
Fecha de Ingreso: junio-2002
Mensajes: 122
Antigüedad: 21 años, 10 meses
Puntos: 3
ohhhh, no habia cachado... es q ando medio weon con la U, y no he tenido mucho tpo para programar...

Gracias compa;ero, te pasaste....

Saludos
__________________
Matematicamente...
...El boucheffiano...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:31.