Pessoal, estou desenvolvendo um pequenos sistema (coisa simples) para atender a seguinte especificação: controlar materiais utilizados no mês numa prestação de serviços. Detalhe é que durante o mês são cadastrados novos clientes sempre, a listagem de materiais deve ser constantemente atualizada para atender as necessidades desses novos clientes.
Já modelei o banco. Pra resumir a dúvida em questão, estou trabalhando com 03 tabelas (materiais, clientes, mat_utilizados).
Estou implementando a interface utilizando o netbeans versão 7.3. É necessário que na tela onde será feito a inclusão dos materiais já seja possível acessar a tela de cadastro pra inserir materiais e clientes sempre que necessário.
Utilizei o seguinte código para preencher os combobox:private void AtualizaListaMateriais(){
String listaMaterial = "select nom_material from material order by nom_material";
cmbx_material.removeAllItems();//limpar combobox antes de preencher pra evitar duplicidades
con2.ExecutaSql(listaMaterial);
//preenchendo lista de materiais
try{
while(con2.rs.next()){
cmbx_material.addItem(con2.rs.getString("nom_material"));
}
}catch(SQLException e){
JOptionPane.showMessageDialog(null,"Erro ao carregar a lista de materiais \n"+ e.getMessage());
}catch(NullPointerException e){}
}
private void cmbx_materialMousePressed(java.awt.event.MouseEvent evt) {
AtualizaListaMateriais();
}
Com isso consigo preencher o combobox, e sempre que incluo novo cliente ou material, basta clicar no combobox que a lista é atualizada.
Tenho um campo de texto ao lado do combobox que exibe o código do material selecionado, dessa forma:private void CarregaIdMaterial(){
if(codMaterial == false){
try{
String sql = "select * from material where nom_material like '"+cmbx_material.getSelectedItem()+"'";
con2.ExecutaSql(sql);
con2.rs.next();
tf_id_material.setText(con2.rs.getString("idmaterial"));
}catch(SQLException e){
JOptionPane.showMessageDialog(null,"Erro ao carregar a lista \n"+ e.getMessage());
}
}
codMaterial = false;
}
O código acima é acionado no evento acitonperformed do combobox.
Então sempre que seleciono determinado nome na lista, o código correspondente aparece no campo de texto ao lado.
O problema é que ao inserir um novo material, esse código que serve para exibir o código do item selecionado pára de funcionar.
Alguém pode me ajudar a resolver?