Foro de elhacker.net

Programación => Java => Mensaje iniciado por: soy_nicanor en 6 Marzo 2015, 03:39 am



Título: Limpiar Combobox o Agregar Seleccione
Publicado por: soy_nicanor en 6 Marzo 2015, 03:39 am
Utilizo este código para Limpiar
Código
  1. jComboBox1.setSelectedIndex(0);
  2.  

(http://i.elhacker.net/i?i=8xnliKBoFEJIX5vc0lpGQGVo)


Estoy sacando datos a combobox de mysql

Código
  1. void Proveedor() throws SQLException {
  2.        Conexion cn=new Conexion();
  3.        Connection conn = cn.Conectar();
  4.        ResultSet rs;    
  5.  
  6.        String sql="SELECT * FROM proveedor ORDER BY nombreEmpresa ASC";
  7.        PreparedStatement sqls = conn.prepareStatement(sql);
  8.        rs = sqls.executeQuery();
  9.        while(rs.next()){
  10.            ComboProveedor u =new ComboProveedor();
  11.            u.setId_prov(rs.getInt("id_prov"));
  12.            u.setNombreEmpresa(rs.getString("nombreEmpresa"));
  13.            jComboBox1.addItem(u);  
  14.        }
  15.    }
  16.  


El problema es al momento de limpiar después de haber sacado datos en combo
Me manda error y no me limpia


Título: Re: Limpiar Combobox o Agregar Seleccione
Publicado por: soy_nicanor en 6 Marzo 2015, 03:56 am
Ni con esto no me funciona.
jComboBox1.setSelectedItem("Seleccione Clase");

Esto es el error que me sale
(http://i.elhacker.net/i?i=nRcEqMbfnZfMu8MvsVL_9mVo)



Quiero que regrese a fila 0, al limpiar


Título: Re: Limpiar Combobox o Agregar Seleccione
Publicado por: Usuario Invitado en 6 Marzo 2015, 12:40 pm
¿En tu lógica, que te dice esto?

Citar
java.lang.String can not cast to redfarma.ComboProveedor

JComboBox acepta un tipo de dato como ítem y éste es String. Tu le estás pasando un objeto ComboProveedor y el compilador lo está tratando de convertir a String pero no puede y lanza la excepción.

ComboProveedor puede ser un objeto y que sobreescriba el método toString(). Ejemplo:

Código
  1. class Provider
  2. {
  3.    private String name;
  4.    private String description;
  5.  
  6.    public Provider(String name, String description)
  7.    {
  8.        this.name = name;
  9.        this.description = description;
  10.    }
  11.  
  12.    public String getName()
  13.    {
  14.        return name;
  15.    }
  16.  
  17.    public String getDescription()
  18.    {
  19.        return description;
  20.    }
  21.  
  22.        @Override
  23.    public String toString()
  24.    {
  25.        return name;
  26.    }
  27.  
  28. }

Y ahora ya puedes guardarlo en el combo:

Código
  1. comboBox.addItem(new Provider("Empresa abc", "Proveedor de productos escolares"));

Y para recuperarlos:

Código
  1. Provider item = (Provider) cboProveedores.getSelectedItem();
  2. String name = item.getName(); // retorna "Empresa abc"
  3. String description = item.getDescription(); // retorna "Proveedor de utiles escolares

El método toString() es llamado automáticamente en todo contexto en donde se acepten String y se envíe un objeto. Por eso, al agregar el objeto Provider al JComboBox, en realidad se está llamando a su método toString() que retorna el nombre del proveedor.

Saludos.