1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

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;
    }

}
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags mysql javafx swing ou faça a sua própria pergunta.