elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Problema JCombobox
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema JCombobox  (Leído 3,681 veces)
tollis

Desconectado Desconectado

Mensajes: 8



Ver Perfil
Problema JCombobox
« en: 1 Septiembre 2015, 22:14 pm »

Buenas amigos,

Veréis estoy trabajando con una aplicación de escritorio pero tengo un problema un combobox, os explico un poquito.

Tengo un array de objetos de unos clientes (nombre, apellidos, dni, etc), a partir de ahí recorro ese array y lleno el combo con los nombres tal que:

Código:
for(int i = 0; i< clientearray.size(); i++){
comboBox.addItem(clientearray.get(i).getNombre());
}

después de trabajar con los clientes (modificar, eliminar, etc) quiero mantener el combo actualizado, había pensado en borrarlo así

Código:
comboBox.removeAllItems();

pero me tira un java.lang.NullPointerException, se que es porque apunta a una direccion que no existe, he probado comboBox.removeAll(); pero no hace absolutamente nada, he leído por hay que se debe trabajar con la clase model, pero no se bien como hacerlo... ¿alguna idea?

Muchas gracias de antemano.

Saludos


En línea

someRandomCode

Desconectado Desconectado

Mensajes: 250



Ver Perfil
Re: Problema JCombobox
« Respuesta #1 en: 2 Septiembre 2015, 00:10 am »

Si la aplicacion trabaja solo local, es decir, sin una base de datos que trabaje distribuida, lo que podes hacer es llamar a un metodo proxy que mantenga todo actualizado..
En cuanto a que te tire NPE, fijate que debe ser otra cosa porque:
http://docs.oracle.com/javase/7/docs/api/javax/swing/JComboBox.html#removeAllItems%28%29
es una funcion con nothrow...


En línea

tollis

Desconectado Desconectado

Mensajes: 8



Ver Perfil
Re: Problema JCombobox
« Respuesta #2 en: 2 Septiembre 2015, 00:21 am »

Si es una aplicación solo local, ya intenté crear un método en el que solo se actualizara el combo, pero seguía con el dichoso NPE, he observado por otros foros y la solución mas factible es con model, pero ahí es donde no avanzo.... ¿o conocéis alguna otra manera de hacerlo? la mayoría de casos que he visto son combos simples de string, nada de coger datos de  arrays ni nada por el estilo, pero debería de funcionar el borrado del combo... no se a que puede ser debido
En línea

someRandomCode

Desconectado Desconectado

Mensajes: 250



Ver Perfil
Re: Problema JCombobox
« Respuesta #3 en: 2 Septiembre 2015, 00:28 am »

Pasarte a una estructura model-view no es necesario.. Insisto, fijate bien en que linea de codigo te marca el NPE..
Si podes, pone el pedazo de codigo relevante para que te podamos ayudar..
En línea

tollis

Desconectado Desconectado

Mensajes: 8



Ver Perfil
Re: Problema JCombobox
« Respuesta #4 en: 2 Septiembre 2015, 21:36 pm »

El código es bastante sencillo, aquí lleno el combo

Código:
public void	cargar1(){

for(int i = 0; i< clientearray.size(); i++){
//clientearray es mi array de objetos
comboBox.addItem(clientearray.get(i).getNombre());
clave=clientearray.get(i).getClave();
}
}

Aquí cargo el contenido de unos textfields a partir del nombre seleccionado en el combo

Código:
	public void cargaDatos() {
 
  for(int i = 0; i< clientearray.size(); i++){
    if( comboBox.getSelectedItem().equals(clientearray.get(i).getNombre()))
         {
    Nombre1.setText(clientearray.get(i).getNombre());
    dni1.setText(clientearray.get(i).getDni());
    direccion1.setText(clientearray.get(i).getDireccion());
    poblacion1.setText(clientearray.get(i).getPoblacion());
    cp1.setText(String.valueOf(clientearray.get(i).getCodigop()));
    telefono1.setText(String.valueOf(clientearray.get(i).getTelefono()));
    banco1.setText(clientearray.get(i).getBanco());
    clave1.setText(String.valueOf(clientearray.get(i).getClave()));
         }
   }
}

después realizo cualquier modificación, guardo en array,  borro combo y vuelvo a cargar, y me tira error NPE en la linea

Código:
comboBox.removeAllItems();

Y por supuesto el error se extiende a la llamada a el metodo cargaDatos();
En línea

tollis

Desconectado Desconectado

Mensajes: 8



Ver Perfil
Re: Problema JCombobox
« Respuesta #5 en: 4 Septiembre 2015, 00:46 am »

Buenas, el problema no me radica en el combo, os explico

Al iniciar el programa llamo a tres métodos

cargararchivo();
cargarNombresCombobox();
cargarDatosTextField();

Que son:

Código:
//CARGAMOS EL ARCHIVO CREADO    
   public static void cargararchivo() {
      try {   
        FileInputStream in = new FileInputStream("card.txt");
        ObjectInputStream ois = new ObjectInputStream(in);
        clientearray = (ArrayList<Cliente>)(ois.readObject());     
      } catch (Exception e) {
        System.out.println("Problemas de serializacion al cargar archivo");
      }
      }   
//CARGAMOS LOS NOMBRES AL COMBOBOX   
   public static void   cargarNombresCombobox(){
      comboBox.addItem("Clientes guardados");
      for(int i = 0; i< clientearray.size(); i++){
      comboBox.addItem(clientearray.get(i).getNombre());
      clave=clientearray.get(i).getClave();         
       }
   }
//CARGAMOS DATOS EN TEXTFIELD   
public static void cargarDatosTextField() {
   comboBox.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {               
            for(int i = 0; i< clientearray.size(); i++){
              if( comboBox.getSelectedItem().equals(clientearray.get(i).getNombre()))
               {
                 Nombre1.setText(clientearray.get(i).getNombre());
                 dni1.setText(clientearray.get(i).getDni());
                 direccion1.setText(clientearray.get(i).getDireccion());
                 poblacion1.setText(clientearray.get(i).getPoblacion());
                 cp1.setText(String.valueOf(clientearray.get(i).getCodigop()));
                 telefono1.setText(String.valueOf(clientearray.get(i).getTelefono()));
                 banco1.setText(clientearray.get(i).getBanco());
                 clave1.setText(String.valueOf(clientearray.get(i).getClave()));
               }
      }   
        }});       
 }       

Pues bien he probado el programa solo con los metodos cargararchivo(); y cargarNombresCombobox(); y funciona perfectamente la limpieza del combo y la posterior carga, es al empezar a utilizar el cargarDatosTextField(); cuando llega el NullPointerException, ¿sabéis por que puede ser?

Muchas gracias
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.866



Ver Perfil
Re: Problema JCombobox
« Respuesta #6 en: 6 Septiembre 2015, 16:40 pm »

El foro tiene una sección dedicada a Java, debes formular las preguntas correspondientes allá.

Saludos!
En línea



Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Uso de jTable y jComboBox
Java
garçon 3 10,163 Último mensaje 24 Junio 2009, 22:47 pm
por garçon
Problema con JComboBox creada Dinamicamente
Java
Fran88 3 4,453 Último mensaje 31 Agosto 2009, 09:59 am
por Fran88
Actualizar JComboBox
Java
reylagarto19 1 4,157 Último mensaje 26 Agosto 2012, 01:19 am
por sapito169
Ayuda con Jcombobox
Java
reeyesg 3 2,319 Último mensaje 11 Junio 2015, 20:23 pm
por Usuario Invitado
MOVIDO: Problema JCombobox
Programación General
Eleкtro 0 1,528 Último mensaje 6 Septiembre 2015, 16:39 pm
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines