Wednesday, December 28, 2011

Load Data Dari Database Ke JCombobox (Javax Swing)

Tags

 javax swing

Assalamualaikum Wr. Wb....
Sahabat blogger semua, kali ini saya akan share bagaimana caranya load data dari database ke combobox dengan mengunakan java. Cara ini sering sekali digunakan, dan wajib hukumnya bagi seorang programmer java menguasainya. Contoh ini dibuat sederhana saja hanya mengunakan satu tabel dan dua field yaitu id dan nama.
Ok kita langsung aja praktek, kalau kebanyakan teori malah makin pusing.
Buatlah database baru dengan nama combobox, tentunya sebelumnya kamu sudah menginstal database MySql.  Gambaran strukturnya seperti pada gambar dibawah ini, saya tidak akan bahas bagaimana cara create barunya, saya anggap kamu sudah pada bisa create database baru dan tabel baru. Jika belum bisa silahkan pelajari dulu cara-caranya:
Baca Juga :
Seetelah database baru dan tabel baru terbentuk sekarang kita isi tabel dengan data seperti dibawah, tidak usah terlalu banyak ini hanya untuk contoh saja. Jika nanti sudah berjalan dengan normal silahkan di modifikasi sendiri datanya:

Database baru, tabel baru dan datanya sudah kita isi, Selanjutnya buat sebuah projek baru dan berinama sesuka anda, gambarannya seperti image dibawah:

Selanjutnya buat paketbaru dan berinama bebas:
buat sebuat class baru dan berinama DatabaseHelper

package asep.comboboxwithdatabase.koneksi;

import java.sql.Connection;
import java.sql.DriverManager;

/**
 *
 * @author asep
 */
public class DatabaseHelper {
    private static Connection connection;

    public static Connection getConnection() {
        if(connection==null){
            try{
                Class.forName("com.mysql.jdbc.Driver");
                connection=DriverManager.getConnection("jdbc:mysql:"
                        + "//localhost:3306/combobox", "root", "root");
               
            }catch(Throwable t){
               
            }
        }
        return connection;
    }
   
   
}

selanjutnya buatlah GUI form (tampilan) seperti berikut:
da isi kode seperti berikut:
package asep.comboboxwithdatabase.koneksi;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 *
 * @author asep
 */
public class view extends javax.swing.JFrame {

    /** Creates new form view */
    public view() {
        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() {

        comboKategory = new javax.swing.JComboBox();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        comboKategory.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "plihan" }));
        comboKategory.addPopupMenuListener(new javax.swing.event.PopupMenuListener() {
            public void popupMenuCanceled(javax.swing.event.PopupMenuEvent evt) {
            }
            public void popupMenuWillBecomeInvisible(javax.swing.event.PopupMenuEvent evt) {
            }
            public void popupMenuWillBecomeVisible(javax.swing.event.PopupMenuEvent evt) {
                comboKategoryPopupMenuWillBecomeVisible(evt);
            }
        });

        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()
                .addComponent(comboKategory, javax.swing.GroupLayout.PREFERRED_SIZE, 301, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(24, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(34, 34, 34)
                .addComponent(comboKategory, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(36, Short.MAX_VALUE))
        );

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

private void comboKategoryPopupMenuWillBecomeVisible(javax.swing.event.PopupMenuEvent evt) {                                                       
// hapus semua data combobox
    comboKategory.removeAllItems();
    //load data dari database ke combo box
    Statement statement=null;
    ResultSet resultSet=null;
    try{
        statement=DatabaseHelper.getConnection().createStatement();
        resultSet=statement.executeQuery("select nama from kategori_barang");
        while(resultSet.next()){
            String kategory=resultSet.getString("nama");
            comboKategory.addItem(kategory);
        }
    }catch(SQLException e){
      
    }finally{
        try{
            if(resultSet != null){
                resultSet.close();
            }
        }catch(SQLException e){
           
        }
    }
    try{
        if(statement !=null){
            statement.close();
        }
    }catch(SQLException e){
       
    }
}                                                       

    /**
     * @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 ex) {
            java.util.logging.Logger.getLogger(view.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(view.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(view.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(view.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new view().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify
    private javax.swing.JComboBox comboKategory;
    // End of variables declaration
}
untuk lebih jelasnya silahkan download sourcodnya:
comboboxwithdatabase


mudah mudahan bisa membantu kamu, terutama kamu yang baru belajar Java.
Sampai ketemu di postingan selanjutnya

Salam


EmoticonEmoticon