Oleh : Reza Ervani
بسم الله الرحمن الرحيم
Pertama-tama kita buatkan form dulu seperti tampak pada gambar di bawah ini :
Selanjutnya kita buat databasenya dengan phpmyadmin seperti tampak dibawah ini :
Kita akan menggunakan DefaultTableModel untuk menampilkan data dari database
Kodenya akan tampak seperti berikut :
DefaultTableModel model = new DefaultTableModel(); table = new JTable(model); panel.add(table, BorderLayout.CENTER); panel.add(table.getTableHeader(), BorderLayout.PAGE_START);
Tentu saja kita akan letakkan kode tersebut sebelum button yang sudah memiliki ActionHandler. Asumsinya koneksi dan statement query sudah kita buat, sehingga tampak seperti berikut :
DefaultTableModel model = new DefaultTableModel(); table = new JTable(model); panel.add(table, BorderLayout.CENTER); panel.add(table.getTableHeader(), BorderLayout.PAGE_START); JButton btnTampilkanDataTerbaru = new JButton("TAMPILKAN DATA TERBARU"); btnTampilkanDataTerbaru.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { try { //Memuat Driver JDBC MySQL Class.forName("com.mysql.jdbc.Driver"); //Melakukan Koneksi koneksi = DriverManager.getConnection("jdbc:mysql://localhost/herbal","root", "fatihrantissi"); statement = koneksi.createStatement(); resultset = statement.executeQuery("SELECT * FROM datastok");
Lalu kita buatkan lima kolom seperti berikut :
model.addColumn("ID"); model.addColumn("Nama Barang"); model.addColumn("Harga"); model.addColumn("Stok"); model.addColumn("Keterangan");
Sekarang mari kita tampilkan baris pertama dengan kode seperti berikut :
//menavigasi resultset ke baris pertama resultset.first(); //menampilkan data dari baris pertama database model.insertRow(0, new Object[]{resultset.getInt(1), resultset.getString(2), resultset.getInt(3), resultset.getInt(4), resultset.getString(5)});
Jika dijalankan maka program kita akan tampak seperti berikut :
Kini kita pindahkan navigasi result set ke baris berikutnya dan menampilkan hasilnya ke baris kedua di tabel
//menavigasi resultset ke baris berikutnya resultset.next(); //menampilkan data dari baris kedua database model.insertRow(1, new Object[]{resultset.getInt(1), resultset.getString(2), resultset.getInt(3), resultset.getInt(4), resultset.getString(5)}); //menavigasi resultset ke baris berikutnya resultset.next(); //menampilkan data dari baris ketiga database model.insertRow(2, new Object[]{resultset.getInt(1), resultset.getString(2), resultset.getInt(3), resultset.getInt(4), resultset.getString(5)});
Jika dijalankan maka program kita akan tampak seperti gambar berikut :
Dan terakhir kita pindahkan kursor ke baris terakhir database dan menampilkannya di baris ke-4 JTable
//menavigasi kursor result set ke baris terakhir database resultset.last(); //menampilkan hasil dari resultset ke baris ke-4 JTable model.insertRow(3, new Object[]{resultset.getInt(1), resultset.getString(2), resultset.getInt(3), resultset.getInt(4), resultset.getString(5)});
Jika kita jalankan maka program kita akan tampak seperti berikut :
Kode lengkapnya tampak seperti berikut :
package com.eclipseprogramming.BacaDatabase; import java.awt.BorderLayout; import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.border.EmptyBorder; import javax.swing.JLabel; import java.awt.Font; import javax.swing.JTable; import javax.swing.table.DefaultTableModel; import java.awt.FlowLayout; import java.awt.GridLayout; import javax.swing.border.TitledBorder; import org.eclipse.wb.swing.FocusTraversalOnArray; import java.awt.Component; import javax.swing.JButton; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class Tampilan extends JFrame { private JPanel contentPane; private JTable table; /** * Field untuk Database */ private Connection koneksi = null; private Statement statement = null; private ResultSet resultset = null; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { Tampilan frame = new Tampilan(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public Tampilan() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 731, 364); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(null); JLabel lblContohMenampilkanIsi = new JLabel("Contoh Menampilkan Isi Database di Swing"); lblContohMenampilkanIsi.setBounds(184, 0, 369, 32); lblContohMenampilkanIsi.setFont(new Font("PT Sans Narrow", Font.BOLD, 24)); contentPane.add(lblContohMenampilkanIsi); JLabel lblEclipseprogrammingcom = new JLabel("programming.rezaervani.com"); lblEclipseprogrammingcom.setBounds(279, 30, 178, 15); contentPane.add(lblEclipseprogrammingcom); JLabel lblStatus = new JLabel("STATUS"); lblStatus.setBounds(17, 249, 266, 39); contentPane.add(lblStatus); JPanel panel = new JPanel(); panel.setBorder(new TitledBorder(null, "Data Produk", TitledBorder.LEADING, TitledBorder.TOP, null, null)); panel.setBounds(7, 57, 721, 182); contentPane.add(panel); panel.setLayout(new BorderLayout(0, 0)); DefaultTableModel model = new DefaultTableModel(); table = new JTable(model); panel.add(table, BorderLayout.CENTER); panel.add(table.getTableHeader(), BorderLayout.PAGE_START); JButton btnTampilkanDataTerbaru = new JButton("TAMPILKAN DATA TERBARU"); btnTampilkanDataTerbaru.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { try { //Memuat Driver JDBC MySQL Class.forName("com.mysql.jdbc.Driver"); //Melakukan Koneksi koneksi = DriverManager.getConnection("jdbc:mysql://localhost/herbal","root", "fatihrantissi"); statement = koneksi.createStatement(); resultset = statement.executeQuery("SELECT * FROM datastok"); model.addColumn("ID"); model.addColumn("Nama Barang"); model.addColumn("Harga"); model.addColumn("Stok"); model.addColumn("Keterangan"); resultset.first(); model.insertRow(0, new Object[]{resultset.getInt(1), resultset.getString(2), resultset.getInt(3), resultset.getInt(4), resultset.getString(5)}); resultset.next(); model.insertRow(1, new Object[]{resultset.getInt(1), resultset.getString(2), resultset.getInt(3), resultset.getInt(4), resultset.getString(5)}); resultset.next(); model.insertRow(2, new Object[]{resultset.getInt(1), resultset.getString(2), resultset.getInt(3), resultset.getInt(4), resultset.getString(5)}); resultset.last(); model.insertRow(3, new Object[]{resultset.getInt(1), resultset.getString(2), resultset.getInt(3), resultset.getInt(4), resultset.getString(5)}); lblStatus.setText("Koneksi Berhasil"); } catch (Exception e1) { } } }); btnTampilkanDataTerbaru.setBounds(488, 244, 229, 25); contentPane.add(btnTampilkanDataTerbaru); contentPane.setFocusTraversalPolicy(new FocusTraversalOnArray(new Component[]{lblContohMenampilkanIsi, lblEclipseprogrammingcom, panel, table})); } }
Sengaja kita tidak menggunakan iterasi untuk lebih memahami tentang navigasi resultset.
Jangan lupa pula untuk melengkapi kode diatas dengan closing connection, statement dan resultset.
Selamat bereksperimen (reza@rumahilmu.or.id)
Leave a Reply