Carregando dados do DB para o JcomboBox

16 respostas
M

Ola , estou desenvolvendo uma aplicação e estou com o seguinte problema,
toda vez que eu clico em um item da minha lista na Jcombobox, aparece a mensagem de erro do try-catch este:

catch (SQLException ex){  
          System.out.println("Ocorreu um erro ao carregar o ComboBox");

este e meu codigo…

private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {                                           
        try{  
      try {  
          Class.forName("com.mysql.jdbc.Driver");  
      } catch (ClassNotFoundException ex) {  
          System.out.println("Ocorreu  um erro ao conectar"); 
      }    
      Connection con= (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/sistemapedidos", "root","senha");           
      Statement stm=  con.createStatement();  
        
      String sql ="select nome from mesa;";  
      com.mysql.jdbc.ResultSet rs = (com.mysql.jdbc.ResultSet) stm.executeQuery(sql);  
          
      while (rs.next()){  
        jComboBox1.addItem(rs.getInt("nome"));  
                    }  
      }catch (SQLException ex){  
          System.out.println("Ocorreu um erro ao carregar o ComboBox");  
  }

16 Respostas

ErickRAR

Você está se autossabotando. Por quê não coloca para ver a mensagem de erro completa, assim saberá o que está dando errado?
Coloque o ex.printStackTrace(); para ver o que está errado, mas pelos nomes adotados, você está tentando pegar um nome como Int.

rs.getInt("nome")

Os nomes das mesas são inteiros?

M

os nomes da tabela mesa … sao varchar …

M

a eu coloquei o ex.printStackTrace();

e me mostrou o erro… estava com o nome do bando errado e com a senha, mas coloquei certo
e mesmo assim n esta funcionando

M

esta aparencendo este erro

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: com.mysql.jdbc.JDBC4ResultSet cannot be cast to com.mysql.jdbc.ResultSet
ErickRAR

verifique os seus imports, você está com dois ResultSets de pacotes diferentes.

M

o que quer diser esta parte do codigo

while (rs.next()){ jComboBox1.addItem(rs.getInt("nome")); }

especificamente o que vai dentro das aspas, onde eu coloquei “nome” ?

por que eu fiz foi copiar este codigo… completo… e no lugar de nome tinha codigo

ErickRAR

Ele faz o cast da coluna que você passar por parametro para Int. A coluna que estava no exemplo era código, que é int(1,2,3,5,6). São numeros inteiros. Você está fazendo o cast de um nome para um numero. É como falar que o numero do seu CPF é “João”.
Com o ResultSet você pode pegar outros valores também, como String(rs.getString), double etc.

M

Nao esta funcionando olha como esta

private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {                                           
        try{  
      try {  
          Class.forName("com.mysql.jdbc.Driver");  
      } catch (ClassNotFoundException ex) {  
          System.out.println("Ocorreu  um erro ao conectar"); 
      }    
      Connection con= (Connection) DriverManager.getConnection("jdbc:mysql://localhost/sistemapedido" , "root" , "0303");           
      Statement stm=  con.createStatement();  
        
      String sql ="select nome from mesa;";  
      com.mysql.jdbc.ResultSet rs = (com.mysql.jdbc.ResultSet) stm.executeQuery(sql);  
          
      while (rs.next()){  
        jComboBox1.addItem(rs.getInt("nome"));  
                    }  
      }catch (SQLException ex){  
  }

cacote do resulteset

public class ResultSet {

    public boolean next() {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

    public Object getInt(String nome) {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }
    
}

erro

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: com.mysql.jdbc.JDBC4ResultSet cannot be cast to com.mysql.jdbc.ResultSet
	at Telas.TelaPrincipal.jComboBox1ActionPerformed(TelaPrincipal.java:256)
	at Telas.TelaPrincipal.access$100(TelaPrincipal.java:15)
	at Telas.TelaPrincipal$2.actionPerformed(TelaPrincipal.java:94)
	at javax.swing.JComboBox.fireActionEvent(JComboBox.java:1260)
	at javax.swing.JComboBox.setSelectedItem(JComboBox.java:588)
	at javax.swing.JComboBox.setSelectedIndex(JComboBox.java:624)
	at javax.swing.plaf.basic.BasicComboPopup$Handler.mouseReleased(BasicComboPopup.java:835)
	at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:290)
	at java.awt.Component.processMouseEvent(Component.java:6505)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3320)
	at javax.swing.plaf.basic.BasicComboPopup$1.processMouseEvent(BasicComboPopup.java:499)
	at java.awt.Component.processEvent(Component.java:6270)
	at java.awt.Container.processEvent(Container.java:2229)
	at java.awt.Component.dispatchEventImpl(Component.java:4861)
	at java.awt.Container.dispatchEventImpl(Container.java:2287)
	at java.awt.Component.dispatchEvent(Component.java:4687)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
	at java.awt.Container.dispatchEventImpl(Container.java:2273)
	at java.awt.Window.dispatchEventImpl(Window.java:2719)
	at java.awt.Component.dispatchEvent(Component.java:4687)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
	at java.awt.EventQueue.access$200(EventQueue.java:103)
	at java.awt.EventQueue$3.run(EventQueue.java:694)
	at java.awt.EventQueue$3.run(EventQueue.java:692)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
	at java.awt.EventQueue$4.run(EventQueue.java:708)
	at java.awt.EventQueue$4.run(EventQueue.java:706)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
CONSTRUÍDO COM SUCESSO (tempo total: 7 segundos)
ErickRAR
M

os imports que tem sao apenas estes

import com.mysql.jdbc.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
ErickRAR

Tente sem o cast:

ResultSet rs = stm.executeQuery(sql);
M

da erro… se eu apagar

com.mysql.jdbc.ResultSet rs = (com.mysql.jdbc.ResultSet) stm.executeQuery(sql);
ErickRAR

Qual erro dá? Não é Para apagar, apenas retirar o cast.

M

ola o que e Cast ?

M

ola o que e Cast ?

igor_ks

MarcelloFelipe dica: estude um pouco mais sobre a linguagem java, antes de querer construir algo mais avançado. Procure entender o que cada código faz, procure ir atrás da documentação, para ver pra que serve tal classe e tal método. Senão vc vai ter muitos problemas pra frente e não vai conseguir resolver sozinho…

Criado 10 de março de 2014
Ultima resposta 11 de mar. de 2014
Respostas 16
Participantes 3