Versão atual:

Opções em um ComboBox vinda de um banco de dados

Como faço para setar as opções de um ComboBox vinda de um banco de dados (MySQL) ?

Estou criando cadastro de carros, nele há um ComboBox com as montadoras (já criei a classe para cadastrar as montadoras).

Aqui está todos códigos de classes ligadas a "carro".

  • Get e Set:
package Modelo;

/**
 *
 * @author Kaue
 */
public class Carro {

    private Integer carid;
    private String carnome;
    private String carano;
    private String carmodelo;

    /**
     * @return the carid
     */

    public Integer getCarid() {
        return carid;
    }

    /**
     * @param carid the carid to set
     */
    public void setCarid(Integer carid) {
        this.carid = carid;
    }

    /**
     * @return the carnome
     */
    public String getCarnome() {
        return carnome;
    }

    /**
     * @param carnome the carnome to set
     */
    public void setCarnome(String carnome) {
        this.carnome = carnome;
    }

    /**
     * @return the carano
     */
    public String getCarano() {
        return carano;
    }

    /**
     * @param carano the carano to set
     */
    public void setCarano(String carano) {
        this.carano = carano;
    }

    /**
     * @return the carmodelo
     */
    public String getCarmodelo() {
        return carmodelo;
    }

    /**
     * @param carmodelo the carmodelo to set
     */
    public void setCarmodelo(String carmodelo) {
        this.carmodelo = carmodelo;
    }
}
  • DAO:
package nDAO;

/**
 *
 * @author Kaue
 */

import Modelo.Carro;
import java.sql.Connection; 
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class CarroDao extends GenericDao {

    public void salvar(Carro carro) throws SQLException {
        String insert = "INSERT INTO CARRO(Car_nome, Car_ano, Car_modelo) VALUES(?,?,?)";
        save(insert, carro.getCarnome(), carro.getCarano(), carro.getCarmodelo());
    }

    public void alterar(Carro carro) throws SQLException {
        String update = "UPDATE CARRO " +
                "SET Car_nome = ?, Car_ano = ?, Car_modelo = ?" +
                "WHERE Car_id = ?";
        update(update, carro.getCarid(), carro.getCarnome(), carro.getCarano(), carro.getCarmodelo());
    }

    public void excluir(long Carid) throws SQLException {
        String delete = "DELETE FROM CARRO WHERE Car_id = ?";
        delete(delete, Carid);
    }

    public List<Carro> findCarros() throws SQLException {
        List<Carro> carros = new ArrayList<>();

        String select = "SELECT * FROM CARRO";

    try {   
    Connection conn = getConnection();
    System.out.println(conn);
    PreparedStatement stmt = conn.prepareStatement(select);
    ResultSet rs = stmt.executeQuery();

        while (rs.next()) {
                Carro carro = new Carro();
                carro.setCarid(rs.getInt("car_id"));
                carro.setCarnome(rs.getString("car_nome"));
                carro.setCarano(rs.getString("car_ano"));
                carro.setCarmodelo(rs.getString("car_modelo"));
                carros.add(carro);
         }
} catch(SQLException ex){
 throw ex;
}

        return carros;
    }

    public Carro findByName(String carnome) throws SQLException {
        String select = "SELECT * FROM CARRO WHERE car_nome = ?";
        Carro carro = null;
        try (PreparedStatement stmt = getConnection().prepareStatement(select)) {
            stmt.setString(1, carnome);
            try (ResultSet rs = stmt.executeQuery()) {
                while (rs.next()) {
                    carro = new Carro();
                    carro.setCarid(rs.getInt("car_id"));
                    carro.setCarnome(rs.getString("car_nome"));
                    carro.setCarano(rs.getString("car_ano"));
                    carro.setCarmodelo(rs.getString("car_modelo"));
                }
            }
        }
        return carro;
    }

}
  • Controle:
package Controle;

/**
 *
 * @author Kaue
 */

import Modelo.Carro;
import java.sql.SQLException;
import java.text.ParseException;
import java.util.List;

import javax.swing.*;
import nDAO.CarroDao;

public class CarroController {

    /* MONETÁRIO

    private Monetario formatarMonetario(String Strcarcaixa) throws ParseException {
        Locale brasil = new Locale ("pt", "BR");
        DecimalFormat df = new DecimalFormat ("#,##0.00", new DecimalFormatSymbols (brasil)); 
        return new Monetario( formatter.parse(Strcarcaixa).getTime() );
    }

    */

    public void salvar(String carnome, String carano, String carmodelo) 
        throws SQLException, ParseException 
        {
        Carro carro = new Carro();
        carro.setCarnome(carnome);
        carro.setCarano(carano);
        carro.setCarmodelo(carmodelo);

        new CarroDao().salvar(carro);
        }

    public void alterar(int carid, String carnome, String carano, String carmodelo) 
        throws ParseException, SQLException 
    {

        Carro carro = new Carro();
        carro.setCarid(carid);
        carro.setCarnome(carnome);
        carro.setCarano(carano);
        carro.setCarmodelo(carmodelo);

        new CarroDao().alterar(carro);
    }

    public List<Carro> listaCarros() {
        CarroDao dao = new CarroDao();
        try {
            return dao.findCarros();
        } catch (SQLException e) {
            JOptionPane.showMessageDialog(null, 
                "Problemas ao localizar carro" + 
                e.getLocalizedMessage()
            );
        }
        return null;
    }

    public void excluir(long id) throws SQLException {
        new CarroDao().excluir(id);
    }

    public Carro buscaCarroPorNome(String nome) throws SQLException {
        CarroDao dao = new CarroDao();
        return dao.findByName(nome);
    }

}
  • Janela (com a parte de criação e formatações de botões ocultados pelo NetBeans):
package Janelas;

import Controle.CarroController;
import Controle.MontadoraController;
import Modelo.Carro;
import Modelo.Montadora;
import java.sql.SQLException;
import java.text.ParseException;
import java.util.List;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JOptionPane;

/**
 *
 * @author Kaue
 */
public class CadCarro extends javax.swing.JFrame {

    /**
     * Creates new form CCarro
     */
    public CadCarro() {
        initComponents();


    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jSeparator1 = new javax.swing.JSeparator();
        titulo = new javax.swing.JLabel();
        jP_Cadastra = new javax.swing.JPanel();
        botao_salvar = new javax.swing.JButton();
        tf_nome = new javax.swing.JTextField();
        nome = new javax.swing.JLabel();
        advertenciaAsterisco = new javax.swing.JLabel();
        botao_alterar = new javax.swing.JButton();
        botao_excluir = new javax.swing.JButton();
        ano = new javax.swing.JLabel();
        tf_ano = new javax.swing.JTextField();
        modelo = new javax.swing.JLabel();
        tf_modelo = new javax.swing.JTextField();
        l_montadora = new javax.swing.JLabel();
        cb_montadora = new javax.swing.JComboBox();
        jP_Exibe = new javax.swing.JPanel();
        jB_Exibir = new javax.swing.JButton();
        jCb_OpExibir = new javax.swing.JComboBox();
        Localizar_por = new javax.swing.JLabel();
        campo = new javax.swing.JLabel();
        tf_campo = new javax.swing.JTextField();
        botao_Primeiro = new javax.swing.JButton();
        botao_Anterior = new javax.swing.JButton();
        botao_Limpa = new javax.swing.JButton();
        botao_Proximo = new javax.swing.JButton();
        botao_Ultimo = new javax.swing.JButton();
        jLabel1 = new javax.swing.JLabel();
        jL_Id = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);

        titulo.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N
        titulo.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        titulo.setText("Carro");

        jP_Cadastra.setBorder(javax.swing.BorderFactory.createTitledBorder("Cadastro"));

        botao_salvar.setText("Salvar");
        botao_salvar.setFocusable(false);
        botao_salvar.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        botao_salvar.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        botao_salvar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botao_salvarActionPerformed(evt);
            }
        });

        nome.setText("Nome: *");

        advertenciaAsterisco.setText("* Campos Obrigatórios");

        botao_alterar.setText("Alterar");
        botao_alterar.setFocusable(false);
        botao_alterar.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        botao_alterar.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        botao_alterar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botao_alterarActionPerformed(evt);
            }
        });

        botao_excluir.setText("Excluir");
        botao_excluir.setFocusable(false);
        botao_excluir.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        botao_excluir.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        botao_excluir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botao_excluirActionPerformed(evt);
            }
        });

        ano.setText("Ano: *");

        modelo.setText("Modelo: *");

        l_montadora.setText("Montadora: *");

        cb_montadora.setModel(cb_modelo);

        javax.swing.GroupLayout jP_CadastraLayout = new javax.swing.GroupLayout(jP_Cadastra);
        jP_Cadastra.setLayout(jP_CadastraLayout);
        jP_CadastraLayout.setHorizontalGroup(
            jP_CadastraLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jP_CadastraLayout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(botao_salvar)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(botao_alterar)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(botao_excluir)
                .addGap(4, 4, 4))
            .addGroup(jP_CadastraLayout.createSequentialGroup()
                .addGroup(jP_CadastraLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jP_CadastraLayout.createSequentialGroup()
                        .addGap(33, 33, 33)
                        .addGroup(jP_CadastraLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(ano)
                            .addComponent(nome)
                            .addComponent(modelo))
                        .addGap(36, 36, 36))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jP_CadastraLayout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(l_montadora)
                        .addGap(18, 18, 18)))
                .addGroup(jP_CadastraLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(tf_ano, javax.swing.GroupLayout.PREFERRED_SIZE, 220, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(tf_nome, javax.swing.GroupLayout.PREFERRED_SIZE, 220, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGroup(jP_CadastraLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                        .addComponent(tf_modelo)
                        .addComponent(cb_montadora, javax.swing.GroupLayout.PREFERRED_SIZE, 220, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
            .addGroup(jP_CadastraLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jP_CadastraLayout.createSequentialGroup()
                    .addGap(20, 20, 20)
                    .addComponent(advertenciaAsterisco)
                    .addContainerGap(217, Short.MAX_VALUE)))
        );
        jP_CadastraLayout.setVerticalGroup(
            jP_CadastraLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jP_CadastraLayout.createSequentialGroup()
                .addGap(10, 10, 10)
                .addGroup(jP_CadastraLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(nome)
                    .addComponent(tf_nome, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jP_CadastraLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(ano)
                    .addComponent(tf_ano, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jP_CadastraLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(modelo)
                    .addComponent(tf_modelo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jP_CadastraLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(cb_montadora, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(l_montadora))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 96, Short.MAX_VALUE)
                .addGroup(jP_CadastraLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(botao_salvar)
                    .addComponent(botao_alterar, javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(botao_excluir, javax.swing.GroupLayout.Alignment.TRAILING)))
            .addGroup(jP_CadastraLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jP_CadastraLayout.createSequentialGroup()
                    .addContainerGap(115, Short.MAX_VALUE)
                    .addComponent(advertenciaAsterisco)
                    .addContainerGap()))
        );

        jP_Exibe.setBorder(javax.swing.BorderFactory.createTitledBorder("Exibe"));

        jB_Exibir.setText("Exibir");
        jB_Exibir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jB_ExibirActionPerformed(evt);
            }
        });

        jCb_OpExibir.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Nome", "Endereco", "Cidade", "CEP", "Telefone", "Tudo" }));

        Localizar_por.setText("Localizar por:");

        campo.setText("Campo:");

        javax.swing.GroupLayout jP_ExibeLayout = new javax.swing.GroupLayout(jP_Exibe);
        jP_Exibe.setLayout(jP_ExibeLayout);
        jP_ExibeLayout.setHorizontalGroup(
            jP_ExibeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jP_ExibeLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jP_ExibeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(campo)
                    .addComponent(Localizar_por))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jP_ExibeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(jCb_OpExibir, 0, 168, Short.MAX_VALUE)
                    .addComponent(tf_campo))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jB_Exibir, javax.swing.GroupLayout.PREFERRED_SIZE, 67, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        jP_ExibeLayout.setVerticalGroup(
            jP_ExibeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jP_ExibeLayout.createSequentialGroup()
                .addGroup(jP_ExibeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jP_ExibeLayout.createSequentialGroup()
                        .addContainerGap()
                        .addGroup(jP_ExibeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jCb_OpExibir, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(Localizar_por))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jP_ExibeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(campo)
                            .addComponent(tf_campo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addGroup(jP_ExibeLayout.createSequentialGroup()
                        .addGap(23, 23, 23)
                        .addComponent(jB_Exibir)))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        botao_Primeiro.setText("|<");
        botao_Primeiro.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botao_PrimeiroActionPerformed(evt);
            }
        });

        botao_Anterior.setText("<<");
        botao_Anterior.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botao_AnteriorActionPerformed(evt);
            }
        });

        botao_Limpa.setText("Limpar");
        botao_Limpa.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botao_LimpaActionPerformed(evt);
            }
        });

        botao_Proximo.setText(">>");
        botao_Proximo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botao_ProximoActionPerformed(evt);
            }
        });

        botao_Ultimo.setText(">|");
        botao_Ultimo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botao_UltimoActionPerformed(evt);
            }
        });

        jLabel1.setText("ID:");

        jL_Id.setText("?");

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(titulo, javax.swing.GroupLayout.DEFAULT_SIZE, 746, Short.MAX_VALUE)
                    .addComponent(jSeparator1)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(4, 4, 4)
                        .addComponent(jP_Cadastra, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jP_Exibe, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
                .addContainerGap())
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(botao_Primeiro)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(botao_Anterior)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(botao_Limpa)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(botao_Proximo)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(botao_Ultimo)
                .addGap(170, 170, 170)
                .addComponent(jLabel1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jL_Id)
                .addGap(36, 36, 36))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(titulo)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 15, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jP_Cadastra, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jP_Exibe, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addGap(18, 18, 18)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(jLabel1)
                        .addComponent(jL_Id))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(botao_Primeiro)
                        .addComponent(botao_Anterior)
                        .addComponent(botao_Limpa)
                        .addComponent(botao_Proximo)
                        .addComponent(botao_Ultimo)))
                .addContainerGap())
        );

        pack();
    }// </editor-fold>                        


    private void jB_ExibirActionPerformed(java.awt.event.ActionEvent evt) {                                          

        if(jCb_OpExibir.getSelectedItem() == "Nome")
        {
            //jTP_Imprime.setText(textoListaN.toString());
           onClickLocalizar();
        } 

    }                                         

    private void botao_salvarActionPerformed(java.awt.event.ActionEvent evt) {                                             

        onClickSalvar();
    }                                            

    private void botao_alterarActionPerformed(java.awt.event.ActionEvent evt) {                                              
        onClickAlterar();
    }                                             

    private void botao_excluirActionPerformed(java.awt.event.ActionEvent evt) {                                              
        onClickExcluir();
    }                                             

    private void botao_PrimeiroActionPerformed(java.awt.event.ActionEvent evt) {                                               
        onClickPrimeiro();
    }                                              

    private void botao_LimpaActionPerformed(java.awt.event.ActionEvent evt) {                                            
        clearFields();
        registroAtual = 0;
    }                                           

    private void botao_AnteriorActionPerformed(java.awt.event.ActionEvent evt) {                                               
        onClickAnterior();
    }                                              

    private void botao_ProximoActionPerformed(java.awt.event.ActionEvent evt) {                                              
        onClickProximo();
    }                                             

    private void botao_UltimoActionPerformed(java.awt.event.ActionEvent evt) {                                             
        onClickUltimo();
    }                                            

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(CadCarro.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                new CadCarro().setVisible(true);
            }
        });
    }

    // INCIO BD

    private List<Carro> carroList = new CarroController().listaCarros();

    private int registroAtual = 0;

    //lista retornada pelo MontadoraController
    List<Montadora> montadoras = new MontadoraController().listaMontadoras();

    DefaultComboBoxModel cb_modelo = new DefaultComboBoxModel();

    //aqui to percorrendo a lista retornada pelo controller        
    for (Montadora montadora : montadoras) {
        cb_modelo.addElement(montadora.getMontnome());
    }  

    private void onClickUltimo() {
        registroAtual = carroList.size() - 1;
        getValores(registroAtual);
        jL_Id.setText(Integer.toString(registroAtual));
    }

    private void onClickProximo() {
        if (registroAtual != carroList.size() - 1) {
            getValores(++registroAtual);
            jL_Id.setText(Integer.toString(registroAtual));
        }
    }

    private void onClickAnterior() {
        if (registroAtual != 0) {
            getValores(--registroAtual);
            jL_Id.setText(Integer.toString(registroAtual));
        }
    }

    private void onClickPrimeiro() {
        registroAtual = 0;
        getValores(registroAtual);
        jL_Id.setText(Integer.toString(registroAtual));

    }

    private void getValores(int index) {
        if (index <= carroList.size() - 1) {
            Carro carroAtual = carroList.get(index);
            tf_nome.setText(carroAtual.getCarnome());
            tf_ano.setText(carroAtual.getCarano());
            tf_modelo.setText(carroAtual.getCarmodelo());
        }
    }

    private void onClickAlterar() {
        CarroController crc = new CarroController();
        int carid = carroList.get(registroAtual).getCarid();

        try {
            jL_Id.setText(Integer.toString(registroAtual));
            crc.alterar(carid, tf_nome.getText(), tf_ano.getText(), tf_modelo.getText());
            JOptionPane.showMessageDialog(this, "Carro alterado com sucesso!");
            clearFields();
            carroList = new CarroController().listaCarros();
        } catch (SQLException e) {
            JOptionPane.showMessageDialog(this, "Nao foi possivel alterar carro!n" + e.getLocalizedMessage());
        } catch (ParseException e) {
            JOptionPane.showMessageDialog(this, "Data possui formato inválido!n" + e.getLocalizedMessage());
        }
    }

    private void onClickSalvar() {
        CarroController crc = new CarroController();
        try {
            jL_Id.setText(Integer.toString(registroAtual));
            crc.salvar(tf_nome.getText(), tf_ano.getText(), tf_modelo.getText());
            JOptionPane.showMessageDialog(this, "Carro salvo com sucesso!");
            clearFields();
            carroList = new CarroController().listaCarros();
        } catch (SQLException e) {
            JOptionPane.showMessageDialog(this, 
                "Nao foi possivel salvar carro!n" + 
                e.getLocalizedMessage()
            );
        } catch (ParseException e) {
            JOptionPane.showMessageDialog(this, 
                "Data possui formato inválido!n" + 
                e.getLocalizedMessage()
        );
        }
    }

    private void onClickExcluir() {
        CarroController crc = new CarroController();
        long id = carroList.get(registroAtual).getCarid();

        try {
            jL_Id.setText(Integer.toString(registroAtual));
            crc.excluir(id);
            JOptionPane.showMessageDialog(this, "Carro excluido com sucesso!");
            clearFields();
            carroList = new CarroController().listaCarros();
        } catch (SQLException e) {
            JOptionPane.showMessageDialog(this, 
                "Nao foi possivel excluir o carro!n" + 
                e.getLocalizedMessage()
            );
        }
    }

    private void onClickLocalizar() {
        CarroController crc = new CarroController();
        try {
            Carro cr = crc.buscaCarroPorNome(tf_campo.getText());
            tf_nome.setText(cr.getCarnome());
            tf_ano.setText(cr.getCarano());

            tf_modelo.setText(cr.getCarmodelo());

            jL_Id.setText(cr.getCarid().toString());
        } catch (SQLException e) {
            JOptionPane.showMessageDialog(this, 
                "Ocorreu um erro, tente novamente!n" + 
                e.getLocalizedMessage()
            );
        } catch (NullPointerException e){
            JOptionPane.showMessageDialog(this, 
                "Carro não localizdo ou não existe!n" + 
                e.getLocalizedMessage()
            );
        }
    }

    private void clearFields() {
        tf_nome.setText("");
    }

    // FIM BD




    // Variables declaration - do not modify                     
    private javax.swing.JLabel Localizar_por;
    private javax.swing.JLabel advertenciaAsterisco;
    private javax.swing.JLabel ano;
    private javax.swing.JButton botao_Anterior;
    private javax.swing.JButton botao_Limpa;
    private javax.swing.JButton botao_Primeiro;
    private javax.swing.JButton botao_Proximo;
    private javax.swing.JButton botao_Ultimo;
    private javax.swing.JButton botao_alterar;
    private javax.swing.JButton botao_excluir;
    private javax.swing.JButton botao_salvar;
    private javax.swing.JLabel campo;
    private javax.swing.JComboBox cb_montadora;
    private javax.swing.JButton jB_Exibir;
    private javax.swing.JComboBox jCb_OpExibir;
    private javax.swing.JLabel jL_Id;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JPanel jP_Cadastra;
    private javax.swing.JPanel jP_Exibe;
    private javax.swing.JSeparator jSeparator1;
    private javax.swing.JLabel l_montadora;
    private javax.swing.JLabel modelo;
    private javax.swing.JLabel nome;
    private javax.swing.JTextField tf_ano;
    private javax.swing.JTextField tf_campo;
    private javax.swing.JTextField tf_modelo;
    private javax.swing.JTextField tf_nome;
    private javax.swing.JLabel titulo;
    // End of variables declaration                   

}
  • Classes da montadora:
  • Controle:
package Controle;

/**
 *
 * @author Kaue
 */

import Modelo.Montadora;
import java.sql.SQLException;
import java.text.ParseException;
import java.util.List;

import javax.swing.*;
import nDAO.MontadoraDao;

public class MontadoraController {

    /* MONETÁRIO

    private Monetario formatarMonetario(String Strclicaixa) throws ParseException {
        Locale brasil = new Locale ("pt", "BR");
        DecimalFormat df = new DecimalFormat ("#,##0.00", new DecimalFormatSymbols (brasil)); 
        return new Monetario( formatter.parse(Strclicaixa).getTime() );
    }

    */

    public void salvar(String montnome) 
        throws SQLException, ParseException 
        {
        Montadora montadora = new Montadora();
        montadora.setMontnome(montnome);

        new MontadoraDao().salvar(montadora);
        }

    public void alterar(int montid, String montnome) 
        throws ParseException, SQLException 
    {

        Montadora montadora = new Montadora();
        montadora.setMontid(montid);
        montadora.setMontnome(montnome);

        new MontadoraDao().alterar(montadora);
    }

    public List<Montadora> listaMontadoras() {
        MontadoraDao dao = new MontadoraDao();
        try {
            return dao.findMontadoras();
        } catch (SQLException e) {
            JOptionPane.showMessageDialog(null, 
                "Problemas ao localizar montadora" + 
                e.getLocalizedMessage()
            );
        }
        return null;
    }

    public void excluir(long id) throws SQLException {
        new MontadoraDao().excluir(id);
    }

    public Montadora buscaMontadoraPorNome(String nome) throws SQLException {
        MontadoraDao dao = new MontadoraDao();
        return dao.findByName(nome);
    }

}
  • DAO:
package nDAO;

/**
 *
 * @author Kaue
 */

import Modelo.Montadora;
import java.sql.Connection; 
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class MontadoraDao extends GenericDao {

    public void salvar(Montadora montadora) throws SQLException {
        String insert = "INSERT INTO MONTADORA(Mont_nome) VALUES(?)";
        save(insert, montadora.getMontnome());
    }

    public void alterar(Montadora montadora) throws SQLException {
        String update = "UPDATE MONTADORA " +
                "SET Mont_nome = ?" +
                "WHERE Mont_id = ?";
        update(update, montadora.getMontid(), montadora.getMontnome());
    }

    public void excluir(long Montid) throws SQLException {
        String delete = "DELETE FROM MONTADORA WHERE Mont_id = ?";
        delete(delete, Montid);
    }

    public List<Montadora> findMontadoras() throws SQLException {
        List<Montadora> montadoras = new ArrayList<>();

        String select = "SELECT * FROM MONTADORA";

    try {   
    Connection conn = getConnection();
    System.out.println(conn);
    PreparedStatement stmt = conn.prepareStatement(select);
    ResultSet rs = stmt.executeQuery();

        while (rs.next()) {
                Montadora montadora = new Montadora();
                montadora.setMontid(rs.getInt("mont_id"));
                montadora.setMontnome(rs.getString("mont_nome"));

                montadoras.add(montadora);
         }
} catch(SQLException ex){
 throw ex;
}

        return montadoras;
    }

    public Montadora findByName(String montnome) throws SQLException {
        String select = "SELECT * FROM MONTADORA WHERE mont_nome = ?";
        Montadora montadora = null;
        try (PreparedStatement stmt = getConnection().prepareStatement(select)) {
            stmt.setString(1, montnome);
            try (ResultSet rs = stmt.executeQuery()) {
                while (rs.next()) {
                    montadora = new Montadora();
                    montadora.setMontid(rs.getInt("mont_id"));
                    montadora.setMontnome(rs.getString("mont_nome"));
                }
            }
        }
        return montadora;
    }

}
  • Montadora:
package Modelo;

/**
 *
 * @author Kaue
 */
public class Montadora {

    private Integer montid;
    private String montnome;

    @Override
    public String toString() {
        return montnome;
    }    

    /**
     * @return the montid
     */

    public Integer getMontid() {
        return montid;
    }

    /**
     * @param montid the montid to set
     */
    public void setMontid(Integer montid) {
        this.montid = montid;
    }

    /**
     * @return the montnome
     */
    public String getMontnome() {
        return montnome;
    }

    /**
     * @param montnome the montnome to set
     */
    public void setMontnome(String montnome) {
        this.montnome = montnome;
    }

}

Versões(5):

Ver a versão formatada

Opções em um ComboBox vinda de um banco de dados

Comentário

new question