Bom galera eu tenho um JComboBox que é linkado com o banco
e quando eu removo 1 item desse ComboBox continua aparecendo na aplicação, então eu fecho e abro e o item some
no caso eu teria que dar um “refresh” na minha conexão com o bd?
Vc remove o item através da sua aplicação?
Se vc tiver removendo diretamente do banco (ou por meio de outro programa), eu não conheço nenhum evento para esse tipo de situação.
Olá, Edipo!
Como o Eugenio disse: seja mais claro em sua explicação.
Você remove o item através da aplicação ou “na mão”?
[]'s
através da aplicação.
Tem um JButton que serve para remover o item escolhido
Epido, você pode fazer assim.
Crie seu botão, e adicione um Listener nele.
Dentro deste Listener, você chama um método para excluir o item lá do DB.
E mande dar um refresh nos itens da ComboBox!
Algo assim:
private class MyButtonAction implements ActionListener {
public void actionPerformed(ActionEvent e) {
// Deletando da base de dados o item escolhido da ComboBox.
myDAO.delete(myComboBox.getSelectedIndex());
// Lendo os itens da base de dados, e jogando na ComboBox. (Não sei ao certo se é setListData, mas é algo assim!)
myComboBox.setListData((Object []) myDAO.readByExample(""));
}
}
Espero ter ajudado!
[]'s
então Nicolas Fernandes, não tem esse método setListData no JComboBox
aqui está a minha função para deletar
[code]public void pressionouExcluirTipoAnimal(Object tipoAnimal) {
try {
String url = “jdbc:odbc:Agenda”;
String usuario = “”;
String senha = “”;
Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
Connection con;
con = DriverManager.getConnection(url,usuario,senha);
Statement st = con.createStatement();
st.executeUpdate("DELETE * FROM animais WHERE tipo LIKE '%"+tipoAnimal+"%'");
JOptionPane.showMessageDialog(null,"DELETADO O DANADO");
st.close();
}
catch (Exception e) {
JOptionPane.showMessageDialog(null,"Erro: "+e.getMessage());
}
}[/code]
e aqui a ação no botão
btnDeletarTipoAnimal.addActionListener( new ActionListener() {
public void actionPerformed(ActionEvent evt) {
pressionouExcluirTipoAnimal(cbBoxTipoAnimal.getSelectedItem());
}
});
Edipo,
Beleza… Dentro do evento aí de deletar, você deve acrescentar uma linha para ler todos os dados que você quer na ComboBox e setar nela!
Por exemplo:
btnDeletarTipoAnimal.addActionListener( new ActionListener() {
public void actionPerformed(ActionEvent evt) {
pressionouExcluirTipoAnimal(cbBoxTipoAnimal.getSelectedItem());
cbBoxTipoAnimal.setModel(new DefaultComboBoxModel((Object [])myDAO.lerDadosDoBancoDeDados()));
}
});
Tenta assim!
[]'s
[code]então ainda não consegui fazer o “refresh” no meu ComboBox, tanto na hora de incluir 1 produto, quanto na hora de deletar.
Seguem os codigos:
esse faz a seleção no BD e depois eu o chamo no combobox
public void selecionarItem() {
try {
String url = “jdbc:odbc:Pizzaria”;
String usuario = “”;
String senha = “”;
Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
Connection con;
con = DriverManager.getConnection(url,usuario,senha);
Statement st = con.createStatement();
ResultSet r = st.executeQuery("SELECT nm_Pizza,qt_Preco FROM tipoPizza");
while ( r.next()){
String tipo = r.getString("nm_Pizza");
String preco = r.getString("qt_Preco");
// Double preco2 = Double.parseDouble(preco);
// preco2 = preco2/1;
box.addItem(tipo);
// box.addItem(preco2);
}
st.close();
con.close();
}
catch (Exception e) {
JOptionPane.showMessageDialog(null,"Erro: "+e.getMessage());
}
}[/code]
e esse aqui deletar um produto de acordo com o que esta selecionado na combo
[code]public void excluirTipoPizza() {
try {
String url = “jdbc:odbc:Pizzaria”;
String usuario = “”;
String senha = “”;
Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
Connection con;
con = DriverManager.getConnection(url,usuario,senha);
PreparedStatement pst = con.prepareStatement("DELETE * FROM tipoPizza WHERE nm_Pizza LIKE ?");
pst.setObject(1,"%" + box.getSelectedItem() +"%");
pst.executeUpdate();
JOptionPane.showMessageDialog(null,"PIZZA DELETADA");
pst.close();
con.close();
}
catch (Exception e) {
JOptionPane.showMessageDialog(null,"Erro: "+e.getMessage());
}
}[/code]