Java - combobox java

   
Vista:

combobox java

Publicado por vixoh (2 intervenciones) el 12/06/2009 13:53:21
hola! estoy haciendo una aplicacion con netbeans en la que utilizo dos jcombobox, la cosa es que cuando yo seleccione un elemento en el primer jcombobox, me rellene el otro jcombobox, hasta el momento todo va bien, porque lo que hago es un actionlistener y relleno el segundo jcombobox.

pero el problema está cuando decido en cambiar el elemento del primer jcombobox, se vuelve al actionlistener y me rellena otra vez el jcombobox y ya tengo los elementos nuevos más los otros, la pregunta es:

¿como puedo borrar todos los elementos de un jcombobox? ya probé con removeall, removeItemAll, y todos los metodos parecidos, nose como hacerlo ni que me hace falta.

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:combobox java

Publicado por James (207 intervenciones) el 12/06/2009 19:53:46
en realidad el metodo es "removeAllItems()", con eso deberia bastar, talves tu problema no sea el metodo talves guardas los datos en algun otro lugar, bueno se me ocurre mas, porque no pones tu codigo para revisarle mas a fonfo, Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:combobox java

Publicado por vixoh (2 intervenciones) el 12/06/2009 22:09:59
marca1.addItem("");
modelo1.addItem("");

try {
Class.forName("com.mysql.jdbc.Driver");
String BasedeDatos="jdbc:mysql://localhost:3306/PROYECTO";
Connection conexion= DriverManager.getConnection(BasedeDatos,"vixoh","karaxoh");
Statement SQL= conexion.createStatement();

ResultSet marc = SQL.executeQuery("SELECT * FROM marcas ORDER BY marca ASC");

while (marc.next()) {
marca1.addItem(marc.getString("marca"));
}

conexion.close();
SQL.close();
}
catch(ClassNotFoundException e) {
System.out.println("Error clase no encontrada");
}
catch(SQLException e) {
System.out.println("Error SQL");
}

por aqui hay un action listener que me manda este trozo

private void marca1ActionPerformed(java.awt.event.ActionEvent evt) {
if (!marca1.getSelectedItem().equals("")) {

modelo1.removeAllItems();
modelo1.addItem("");

n1.setText("1");

String dimemarca = "";
if (marca1.getSelectedItem().equals("ACER")) {
dimemarca = "ACER";
}
if (marca1.getSelectedItem().equals("AMD")) {
dimemarca = "AMD";
}
if (marca1.getSelectedItem().equals("ASUS")) {
dimemarca = "ASUS";
}
if (marca1.getSelectedItem().equals("GIGABYTE")) {
dimemarca = "GIGABYTE";
}
if (marca1.getSelectedItem().equals("INTEL")) {
dimemarca = "INTEL";
}
if (marca1.getSelectedItem().equals("KINGSTON")) {
dimemarca = "KINGSTON";
}
if (marca1.getSelectedItem().equals("LG")) {
dimemarca = "LG";
}
if (marca1.getSelectedItem().equals("NGS")) {
dimemarca = "NGS";
}
if (marca1.getSelectedItem().equals("SEAGATE")) {
dimemarca = "SEAGATE";
}

try {
Class.forName("com.mysql.jdbc.Driver");
String BasedeDatos="jdbc:mysql://localhost:3306/PROYECTO";
Connection conexion= DriverManager.getConnection(BasedeDatos,"vixoh","karaxoh");
Statement SQL= conexion.createStatement();

ResultSet mod = SQL.executeQuery("SELECT * FROM productos WHERE marca = '"+dimemarca+"' ORDER BY modelo ASC");

while (mod.next()) {
modelo1.addItem(mod.getString("modelo"));
}

conexion.close();
SQL.close();
}
catch(ClassNotFoundException e) {
System.out.println("Error clase no encontrada");
}
catch(SQLException e) {
System.out.println("Error SQL en marca 1");
}
}
}



cuando ejecuto el programa dice esto:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at proyecto.hacer_factura.modelo1ActionPerformed(hacer_factura.java:751)
at proyecto.hacer_factura.access$100(hacer_factura.java:20)
at proyecto.hacer_factura$2.actionPerformed(hacer_factura.java:251)
at javax.swing.JComboBox.fireActionEvent(JComboBox.java:1240)
at javax.swing.JComboBox.contentsChanged(JComboBox.java:1311)
at javax.swing.JComboBox.intervalRemoved(JComboBox.java:1331)
at javax.swing.AbstractListModel.fireIntervalRemoved(AbstractListModel.java:161)
at javax.swing.DefaultComboBoxModel.removeAllElements(DefaultComboBoxModel.java:169)
at javax.swing.JComboBox.removeAllItems(JComboBox.java:751)
at proyecto.hacer_factura.marca1ActionPerformed(hacer_factura.java:641)
at proyecto.hacer_factura.access$000(hacer_factura.java:20)
at proyecto.hacer_factura$1.actionPerformed(hacer_factura.java:245)
at javax.swing.JComboBox.fireActionEvent(JComboBox.java:1240)
at javax.swing.JComboBox.setSelectedItem(JComboBox.java:567)
at javax.swing.JComboBox.setSelectedIndex(JComboBox.java:603)
at javax.swing.plaf.basic.BasicComboPopup$Handler.mouseReleased(BasicComboPopup.java:816)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:273)
at java.awt.Component.processMouseEvent(Component.java:6134)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
at javax.swing.plaf.basic.BasicComboPopup$1.processMouseEvent(BasicComboPopup.java:480)
at java.awt.Component.processEvent(Component.java:5899)
at java.awt.Container.processEvent(Container.java:2023)
at java.awt.Component.dispatchEventImpl(Component.java:4501)
at java.awt.Container.dispatchEventImpl(Container.java:2081)
at java.awt.Component.dispatchEvent(Component.java:4331)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4301)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3965)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3895)
at java.awt.Container.dispatchEventImpl(Container.java:2067)
at java.awt.Window.dispatchEventImpl(Window.java:2458)
at java.awt.Component.dispatchEvent(Component.java:4331)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:combobox java

Publicado por James (207 intervenciones) el 12/06/2009 23:35:39
El error dice que tu estas tratabdo de vaaciar algo que aun no exite, es decir al parecer tu JComboBox aun no esta instanciado, o puede ser que en algun lugar se haga nulo, sin embargo el erroro no te marca en ninguna parte del codigo que subiste, por otro lado con respecto a lo de limpiar los datos, es que no los limpias cada que haces una consulta solo cuando se selecciona "", en lo cual tambien puede estar el erro pues tu consulta SQL no retorna nada con lo que tu segundo combo quedara vacio y seguramente en nase a la informacion de los dos combos realizas algun proceso de carga o evaluacion de datos y como no los obtiene en algun punto alguno de tus valores se vuelve nulo, te recomendaria no dejar esos espacios, o controlar que cuando el contenido sea vacio no realiza los procesos que se supone debe hacer con datos validos, Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:combobox java

Publicado por mayito (2 intervenciones) el 28/06/2009 01:08:10
removeallitems ese sive..!! :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:combobox java

Publicado por jose luis (1 intervención) el 04/06/2010 16:57:59
Deberia funcionar

jComboBox1.removeAllItems();
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:combobox java

Publicado por Cesar (1 intervención) el 15/07/2014 09:43:30
Excelente... Gracias amigo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:combobox java

Publicado por Luis Fernando Jimenez Montoya (1 intervención) el 28/10/2010 20:14:01
Viejo a mi me paso lo mismo
lo que hice fue eliminar los componentes del vector o el array o con lo que esta llenando el JCombobox,
elimina todos los comnponentes del vector o array y estoy seguro de que teda

nota : ami me funciono
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

combobox java

Publicado por Andres andresmateo.uio@gmail.com (1 intervención) el 30/11/2014 23:00:52
SOLUCION. Seguramente estas usando la información del combo box para algún procedimiento, y por eso, al no encontrar el sistema un dato con el cual trabajar cuando vacías el combo, te sale el "null pointer". La solución es poner una condicion con una variable boolean que cuando se esta vaciando el combo, no se ejecuten las instrucciones que se ejecutan dentro del combo box.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

combobox java

Publicado por Jimmy (1 intervención) el 16/12/2014 01:17:08
como se haria lo que dijiste? es que tengo un problema similar pero no tengo idea de como corregirlo. Si pudieras ayudarme te lo agradeceria..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

combobox java

Publicado por UnSimpleProgramador (1 intervención) el 05/06/2015 00:05:54
Hola vixoh, entre aqui porque tenia tu mismo problema y encontre como respuesta usar removeAllItems. Esto efectivamente borra los datos del combobox pero genera errores cuando 3 o mas comobox estan relacionados en escalera(esto es, el combobox1 depende del combobox2, el combobox2 del combobox3 ,etc.). En tu caso deberia correr normal, porque entiendo solo usas 2. Sin embargo para 3 o mas, te invito a probar
tuComboBox.setModel(new javax.swing.DefaultComboBoxModel(new String[] {}));
para borrar el que desees. Esto lo puedes usar si tienes 1,2 o cualquier cantidad de combobox relacionados.
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar