Gostaria de saber qual é a sintaxe para preencher o combobox com os dados pegos de uma tabela em um banco de dados.Até sei alguma coisa… mas acho que estou errando,gostaria que se pudessem me dessem algum exemplo pois me viro muito bem com exemplos…
Como armazenar valores pegos do banco em um jcombo?
9 Respostas
Basicamente você vai popular seu JComboBox com o que vc obteve no seu ResultSet, não há mistério nisso, basta da uma olhada na documentação referente ao JComboBox.
Faça um Loop (while) e vá adicionando os dados buscados no banco através do SELECT enquanto tiver um próximo dado no ResultSet.
Abraço e boa sorte
eu estou tentando fazer isso em camadas ,e gostaria de saber o que ficaria em cada camada(tela,regra de negocios, e persistencia) e também tenho o VO(não é uma camada) são as classes com seus objetos…
public void atualiza_combo(){
Connection con = null;
Statement s;
try {
String sql = "select * from cargo";
s = con.createStatement();
ResultSet r = s.executeQuery(sql);
while(r.next()){
combo_cargos.addItem(r.getString(2));
}
}
catch (SQLException ex) {
JOptionPane.showMessageDialog(null,"Não conseguiu carregar os cargos:\n" + ex);
}
}
private void formWindowOpened(java.awt.event.WindowEvent evt) {
atualiza_combo();
}
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Tela.JF_Cargo.atualiza_combo(JF_Cargo.java:318)
at Tela.JF_Cargo.formWindowOpened(JF_Cargo.java:276)
at Tela.JF_Cargo.access$000(JF_Cargo.java:26)
at Tela.JF_Cargo$1.windowOpened(JF_Cargo.java:65)
at java.awt.Window.processWindowEvent(Window.java:1862)
at javax.swing.JFrame.processWindowEvent(JFrame.java:274)
at java.awt.Window.processEvent(Window.java:1823)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4460)
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)
tenta fazer assim:
try {
String sql = "select * from cargo";
s = con.createStatement();
ResultSet r = s.executeQuery(sql);
while(r != null){ // se for diferente de nulo é porque retornou algo!
r.next(); //chama o primeiro elemento e assim sucessivamente...
String auxiliar = r.getString(2); // aqui no lugar de 2 coloque o nome da coluna como no banco… “cargo” - entre aspas…
combo_cargos.addItem(auxiliar);
}
tenta ai e posta o resultado!
[code]Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Tela.JF_Cargo.atualiza_combo(JF_Cargo.java:321)
at Tela.JF_Cargo.formWindowOpened(JF_Cargo.java:278)
at Tela.JF_Cargo.access$000(JF_Cargo.java:26)
at Tela.JF_Cargo$1.windowOpened(JF_Cargo.java:65)
at java.awt.Window.processWindowEvent(Window.java:1862)
at javax.swing.JFrame.processWindowEvent(JFrame.java:274)
at java.awt.Window.processEvent(Window.java:1823)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4460)
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)code]
vc observou essa instrução em negrito?
r.getString(2); // aqui no lugar de 2 coloque o nome da coluna como no banco… “cargo” - entre aspas…
public void atualiza_combo(){
try {
Conexao cx = null;
Connection con = null;
String sql = "select * from cargo";
String auxiliar;
cx.conectar();
System.out.println("conectou\n");
Statement s = con.createStatement();
ResultSet r = s.executeQuery(sql);
if(r == null)
JOptionPane.showMessageDialog(null, "resultset recebendo valor nulo\n");
while(r != null){
r.next();//chama o primeiro elemento e assim sucessivamente
auxiliar = r.getString("descricao");
combo_cargos.addItem(r.getString(auxiliar));
}
cx.desconectar();
}
catch (SQLException ex) {
JOptionPane.showMessageDialog(null,"Não conseguiu carregar os cargos:\n" + ex);
}
}
}
na linha 21 deixe assim:
combo_cargos.addItem(auxiliar);
mudei um pouco e ficou com o mesmo erro ainda...
public final void atualiza_combo(){
try {
Connection con = null;
String sql = "select * from cargo";
String auxiliar;
Statement s = con.createStatement();
ResultSet r = s.executeQuery(sql);
if(r == null)
JOptionPane.showMessageDialog(null, "resultset recebendo valor nulo\n");
while(r != null){//so volta alguma coisa se resultset diferente de null
r.next();//chama o primeiro elemento e assim sucessivamente
auxiliar = r.getString("descricao");
combo_cargos.addItem(auxiliar);
}
}
catch (SQLException ex) {
JOptionPane.showMessageDialog(null,"Não conseguiu carregar os cargos:\n" + ex);
}
}