Pessoal eu estou com duas dúvidas aqui. A primeira é que eu queria atualizar a comboBox em tempo de execução. Assim que eu gravar os dados no banco, eu gostaria de selecionar na comboBox o nome que eu gravei no banco mas sem ter que fechar o formulário. Esse é o código que eu coloquei dentro da Combo:
jComboBoxCliente.addItem("");
try{
st = conexao.conectar().createStatement();
sql = "select * from lancamentocliente";
rs = st.executeQuery(sql);
while (rs.next()){
jComboBoxCliente.addItem(rs.getString(2));
jComboBoxCliente.setSelectedItem(null);
}st.close();
}catch (Exception ex){
ex.printStackTrace();
}
}
Eu já coloquei o código dentro do evento do Action Performed mas ainda sem sucesso. O que eu devo fazer?
Agora a segunda dúvida. Eu tenho uma classe que cadastra as contas de entrada e saída do mês. Até aí tudo bem, está gravando normal no banco. Mas é pra pra fazer a consulta que eu estou com problemas. Antes de eu explicar melhor vou mostrar um print da tela de consulta.
[img]http://img194.imageshack.us/img194/4927/imagemef.jpg[/img]
Conforme na foto da tela, eu quero fazer uma consulta pelo nome do cliente, selecionando o nome na comboBox pra exibir o resultado referente aos campos da tabela; fazer a busca pela data atual ou de uma data até a outra mas sem o nome estar selecionado ou com o nome selecionado.
Ex: seleciono um nome na comboBox pra exibir todas as contas cadastradas, o pagamento efetuado desse cliente. Ou exibir as contas desse cliente em determinada data ou de uma data até a outra ou exibir as contas de uma data até a outra sem selecionar o cliente.
E ainda exibir o total somado do campo Pagamento. O total não é gravado no banco, a soma seria feita através de um select e exibir o resultado no campo Valor Total.
No código abaixo eu consigo exibir o resultado digitando apenas a data no campo inicial.
try{
Connection conn = null;
PreparedStatement st = null;
try {
String pesquisaC = jComboBoxCliente.getSelectedItem();
String DataInicial = jTextFieldDTI.getText();
String DataFinal = jTextFieldDTF.getText();
conn = (Connection) conexao.conectar();
st = conn.prepareStatement("select * from lancamentocliente where Cliente like ?");
st = conn.prepareStatement("select * from lancamentocliente where Data like ?");
st.setString(1, "%" + pesquisaC + "%");
st.setString(2, "%" + DataInicial + "%");
LancamentoClienteModel modelo = (LancamentoClienteModel) jTable.getModel();
rs = st.executeQuery();
modelo.clear();
while(rs.next()) {
modelo.add(new LancamentoCliente(rs));
}} finally {
if (st != null) st.close();
if (conn != null) conn.close();
}
}catch (Exception ex) {
throw new RuntimeException(ex);
}
Quando eu seleciono o nome na combo, a pesquisa não quer funcionar. Só está pesquisando por data mesmo.
O que será que eu to fazendo de errado? Mas isso que eu to tentando é só pra começar mesmo pois eu sei que vou ter que implementar várias coisas ainda. Acho que vai ter que ter vários selects dentro de ifs para cada condição não é?

Passei a variável como parâmetro do addItem. Só que eu ainda deixei fazendo a consulta no banco pois sem isso nem aparece nada na Combo.