I have a problem where my jComboBox values are not being returned but the values in the database are correct.
I have a Vehicle Master jframe, which when triggered by the search button, calls the pesquisaVeiculo
methods and calls a jDialog to search the database. Once the selected vehicle is selected, it closes and returns the values in the jFrame of CadastroDeVeiculo
, but the jComboBox does not return any value, it gets the Default item selected, the jTextField returns with the values that were selected.
jFrame = VehicleCode
public class CadastroDeVeiculos extends javax.swing.JFrame {
private Connection conexao;//Cria metodo de conexao
//Construtor
public CadastroDeVeiculos(){
initComponents();
this.setLocationRelativeTo(null);
}
public void pesquisaVeiculo(){
//Cria as variaveis e seta os valores dos get and set pegados na classe Veiculo
PesquisaVeiculo pesquisa = new PesquisaVeiculo(this,true);
pesquisa.setVisible(true);
//Cria as variaveis
Long id = pesquisa.getId_veiculo();
String modelo = pesquisa.getModelo_veiculo();
String cor = pesquisa.getCor_veiculo();
int ano = pesquisa.getAno_veiculo();
String placa = pesquisa.getPlaca_veiculo();
String estado = pesquisa.getEstado_veiculo();
String marca = pesquisa.getMarca_veiculo();
String observacoe = pesquisa.getObservacoes_veiculo();
Double valorMin = pesquisa.getValor_minimo_veiculo();
Double valorMed = pesquisa.getValor_medio_veiculo();
Double valorMax = pesquisa.getValor_maximo_veiculo();
int quantidade = pesquisa.getQuantidade_veiculo();
String tipo = pesquisa.getTipo_veiculo();
//Seta os valores nos campos
jTextFieldIdVeiculo.setText(String.valueOf(id));
jTextFieldModelo.setText(modelo);
jTextFieldCor.setText(cor);
jTextFieldAno.setText(String.valueOf(ano));
jFormattedTextFieldPlaca.setText(placa);
jTextFieldEstado.setText(estado);
jComboBoxMarca.setSelectedItem(marca);
jTextFieldObservacoes.setText(observacoe);
jFormattedTextFieldValorMin.setText(String.format("%.3f",(valorMin)));
jFormattedTextFieldValorMed.setText(String.format("%.3f", (valorMed)));
jFormattedTextFieldValorMax.setText(String.format("%.3f", (valorMax)));
jTextFieldQuantidade.setText(String.valueOf(quantidade));
jComboBoxTipo.setSelectedItem(tipo);
}
}
jDialog = Vehicle Search
public class PesquisaVeiculo extends javax.swing.JDialog {
private Long id_veiculo;
private String modelo_veiculo;
private String cor_veiculo;
private int ano_veiculo;
private String placa_veiculo;
private String estado_veiculo;
private String marca_veiculo;
private String observacoes_veiculo;
private double valor_minimo_veiculo;
private double valor_medio_veiculo;
private double valor_maximo_veiculo;
private int quantidade_veiculo;
private String tipo_veiculo;
//GETTER AND SETTER
public String getTipo_veiculo() {
return tipo_veiculo;
}
public void setTipo_veiculo(String tipo_veiculo) {
this.tipo_veiculo = tipo_veiculo;
}
public Long getId_veiculo() {
return id_veiculo;
}
public void setId_veiculo(Long id_veiculo) {
this.id_veiculo = id_veiculo;
}
public String getModelo_veiculo() {
return modelo_veiculo;
}
public void setModelo_veiculo(String modelo_veiculo) {
this.modelo_veiculo = modelo_veiculo;
}
public String getCor_veiculo() {
return cor_veiculo;
}
public void setCor_veiculo(String cor_veiculo) {
this.cor_veiculo = cor_veiculo;
}
public int getAno_veiculo() {
return ano_veiculo;
}
public void setAno_veiculo(int ano_veiculo) {
this.ano_veiculo = ano_veiculo;
}
public String getPlaca_veiculo() {
return placa_veiculo;
}
public void setPlaca_veiculo(String placa_veiculo) {
this.placa_veiculo = placa_veiculo;
}
public String getEstado_veiculo() {
return estado_veiculo;
}
public void setEstado_veiculo(String estado_veiculo) {
this.estado_veiculo = estado_veiculo;
}
public String getMarca_veiculo() {
return marca_veiculo;
}
public void setMarca_veiculo(String marca_veiculo) {
this.marca_veiculo = marca_veiculo;
}
public String getObservacoes_veiculo() {
return observacoes_veiculo;
}
public void setObservacoes_veiculo(String observacao_veiculo) {
this.observacoes_veiculo = observacao_veiculo;
}
public double getValor_minimo_veiculo() {
return valor_minimo_veiculo;
}
public void setValor_minimo_veiculo(double valor_minimo_veiculo) {
this.valor_minimo_veiculo = valor_minimo_veiculo;
}
public double getValor_medio_veiculo() {
return valor_medio_veiculo;
}
public void setValor_medio_veiculo(double valor_medio_veiculo) {
this.valor_medio_veiculo = valor_medio_veiculo;
}
public double getValor_maximo_veiculo() {
return valor_maximo_veiculo;
}
public void setValor_maximo_veiculo(double valor_maximo_veiculo) {
this.valor_maximo_veiculo = valor_maximo_veiculo;
}
public int getQuantidade_veiculo() {
return quantidade_veiculo;
}
public void setQuantidade_veiculo(int quantidade_veiculo) {
this.quantidade_veiculo = quantidade_veiculo;
}
//--------------------------------------------------------------------------------------------------------------------
//Metodos para pesquisa
DefaultTableModel tmVeiculo = new DefaultTableModel(null, new String[]{"Id", "Modelo", "Cor", "Ano", "Placna","Estado" , "Marca",
"Obeservações","Valor min.","Valor med.","Valor max.", "Quantidade", "Tipo"});//Colunas do JTablePesquisaVeiculo
List<Veiculo> veiculo;
ListSelectionModel lsVeiculo;
//Construtor
public PesquisaVeiculo(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();
this.setLocationRelativeTo(null);
}
//Metodo para mostrar pesquisa no JTable
public void mostraPesquisa(List<Veiculo> veiculo) {
while(tmVeiculo.getRowCount()>0){
tmVeiculo.removeRow(0);
}
if (veiculo.size() == 0) {
JOptionPane.showMessageDialog(null, "Nenhum veiculo cadastrado!");
} else {
String[] linhaVeiculo = new String[]{null, null, null, null, null, null, null, null, null, null, null, null, null};
for (int i = 0; i < veiculo.size(); i++) {
tmVeiculo.addRow(linhaVeiculo);
tmVeiculo.setValueAt(veiculo.get(i).getId_veiculo(), i, 0);
tmVeiculo.setValueAt(veiculo.get(i).getModelo_veiculo(), i, 1);
tmVeiculo.setValueAt(veiculo.get(i).getCor_veiculo(), i, 2);
tmVeiculo.setValueAt(veiculo.get(i).getAno_veiculo(), i, 3);
tmVeiculo.setValueAt(veiculo.get(i).getPlaca_veiculo(), i, 4);
tmVeiculo.setValueAt(veiculo.get(i).getEstado_veiculo(), i, 5);
tmVeiculo.setValueAt(veiculo.get(i).getMarca_veiculo(), i, 6);
tmVeiculo.setValueAt(veiculo.get(i).getObservacoes_veiculo(), i, 7);
tmVeiculo.setValueAt(veiculo.get(i).getValor_minimo_veiculo(), i, 8);
tmVeiculo.setValueAt(veiculo.get(i).getValor_medio_veiculo(), i, 9);
tmVeiculo.setValueAt(veiculo.get(i).getValor_maximo_veiculo(), i, 10);
tmVeiculo.setValueAt(veiculo.get(i).getQuantidade_veiculo(), i, 11);
tmVeiculo.setValueAt(veiculo.get(i).getTipo_veiculo(), i, 12);
}
}
}
//Campo de pesquisa
public void campoPesquisa() {
try {
VeiculoDao dao = new VeiculoDao();
veiculo = dao.getListaVeiculo("%" + jTextFieldPesquisar.getText() + "%");
mostraPesquisa(veiculo);
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, "Erro ao pesquisar! = " + ex);
}
}
//Seta os valores nos get and set da classe Veiculo
public void setarDados() {
int linhaselecionada = jTablePesquisarVeiculo.getSelectedRow();
if (linhaselecionada!=-1) {
id_veiculo = Long.valueOf(jTablePesquisarVeiculo.getValueAt(linhaselecionada, 0).toString());
modelo_veiculo = jTablePesquisarVeiculo.getValueAt(linhaselecionada, 1).toString();
cor_veiculo = jTablePesquisarVeiculo.getValueAt(linhaselecionada, 2).toString();
ano_veiculo = Integer.valueOf(jTablePesquisarVeiculo.getValueAt(linhaselecionada, 3).toString());
placa_veiculo = jTablePesquisarVeiculo.getValueAt(linhaselecionada, 4).toString();
estado_veiculo = jTablePesquisarVeiculo.getValueAt(linhaselecionada, 5).toString();
marca_veiculo = jTablePesquisarVeiculo.getValueAt(linhaselecionada, 6).toString();
observacoes_veiculo = jTablePesquisarVeiculo.getValueAt(linhaselecionada, 7).toString();
valor_minimo_veiculo = Double.valueOf(jTablePesquisarVeiculo.getValueAt(linhaselecionada, 8).toString());
valor_medio_veiculo = Double.valueOf(jTablePesquisarVeiculo.getValueAt(linhaselecionada, 9).toString());
valor_maximo_veiculo = Double.valueOf(jTablePesquisarVeiculo.getValueAt(linhaselecionada, 10).toString());
quantidade_veiculo = Integer.valueOf(jTablePesquisarVeiculo.getValueAt(linhaselecionada, 11).toString());
tipo_veiculo = jTablePesquisarVeiculo.getValueAt(linhaselecionada, 12).toString();
dispose();
} else {
JOptionPane.showMessageDialog(rootPane, "Nenhum veiculo selecionado!");
}
}
}
Control class = Vehicle
public class VeiculoDao {
private Connection conexao;//Cria metodo de conexao
//Contrutor
public VeiculoDao() throws SQLException{
this.conexao = ConexaoBD.getConexao();
}
public List<Veiculo> getListaVeiculo(String nome) throws SQLException{
//Meotodo para pesquisa veiculos
String sql = "select * from veiculo where modelo_veiculo like ?";
PreparedStatement stmt = this.conexao.prepareStatement(sql);
stmt.setString(1, nome);
ResultSet rs = stmt.executeQuery();
List<Veiculo> listaVeiculo = new ArrayList<Veiculo>();
while(rs.next()){
Veiculo veiculo = new Veiculo();
veiculo.setId_veiculo(Long.valueOf(rs.getString("id_veiculo")));
veiculo.setModelo_veiculo(rs.getString("modelo_veiculo"));
veiculo.setCor_veiculo(rs.getString("cor_veiculo"));
veiculo.setAno_veiculo(rs.getInt("ano_veiculo"));
veiculo.setPlaca_veiculo(rs.getString("placa_veiculo"));
veiculo.setEstado_veiculo(rs.getString("estado_veiculo"));
veiculo.setMarca_veiculo(rs.getString("marca_veiculo"));
veiculo.setObservacoes_veiculo(rs.getString("observacoes_veiculo"));
veiculo.setValor_minimo_veiculo(rs.getDouble("valor_minimo_veiculo"));
veiculo.setValor_medio_veiculo(rs.getDouble("valor_medio_veiculo"));
veiculo.setValor_maximo_veiculo(rs.getDouble("valor_maximo_veiculo"));
veiculo.setQuantidade_veiculo(rs.getInt("quantidade_veiculo"));
veiculo.setTipo_veiculo(rs.getString("tipo_veiculo"));
listaVeiculo.add(veiculo);
}
rs.close();
stmt.close();
return listaVeiculo;
}
}
I also have the connection class to the bank, and getters and setters from the vehicle table.
Here are the model screens of the jCombobox template and type
IntheJFrameCadastroVeiculoassoonasthesearchisdonethevaluesreturn,onlythedefaultjComboBox
WhentheDetailsbuttonispresseditclosesthescreenandreturnsthevaluesforthejFrame.
jDialogsearch,withthevaluesenteredatthetimeofregistrationdisplayed,uptothoseofjComboBox.:
How to solve this?