Cara Menggunakan JDateChooser atau JCalendar di Java Swing
Cara menggunakan JDateChooser atau JCalendar di java swing - JCalendar merupakan java library yang dapat kalian gunakan untuk membuat inputan data bertipe tanggal atau date, JDateChooser merupakan komponen yang digunakan untuk pembuatan inputan tanggal.
Materi yang dibahas pada tutorial kali ini :
- Bagaimana cara menggunakan JDateChooser?
- Bagaimana cara mengubah format tanggal atau pattern di JDateChooser?
- Bagaimana cara mengambil nilai atau value dari JDateChooser?
- Bagaimana cara melakukan konversi dari java.util.Date ke java.sql.Date ?
Pembahasan tutorial cara menggunakan JDateChooser :
Bagaimana cara menggunakan JDateChooser?
Sebelum kalian membuat JDateChooser, pertama pastikan kalian mempunyai java library JCalendar dan pastikan kalian sudah menambahkannya kedalam project. Jika kalian belum mempunyai library JCalendar, silahkan download disini.
Berikut cara membuat JDateChooser :
JDateChooser chooser = new JDateChooser();
Bagaimana cara mengubah format tanggal atau pattern di JDateChooser?
Setelah kalian membuat JDateChooser, kalian dapat mengubah format tanggal atau pattern date dengan cara memanggil method setDateFormatString(String string), berikut contoh cara mengubah format tanggal di JDateChooser :
chooser.setDateFormatString("dd MMMM yyyy");
Catatan : mengubah format tanggal di JDateChooser merupakan optional, artinya tidak harus dilakukan.
Bagaimana cara mengambil nilai atau value dari JDateChooser?
untuk melakukan pengambilan nilai JDateChooser gunakan method getDate(). Berikut contoh cara pengambilan nilai atau value pada JDateChooser.
chooser.getDate();
Bagaimana cara melakukan konversi dari java.util.Date ke java.sql.Date ?
Nilai atau value yang diperoleh dari JDateChooser berupa java.util.Date sehingga ketika kalian ingin melakukan penyimpanan kedalam database postgresql maupun mysql, kalian harus melakukan konversi terlebih dahulu dikarenakan date pada database menggunakan java.sql.Date.
Untuk melakukan konversi date dari java.util.Date ke java.sql.Date dapat menggunakan cara sebagai berikut :
Untuk melakukan konversi date dari java.util.Date ke java.sql.Date dapat menggunakan cara sebagai berikut :
java.sql.Date sql = new java.sql.Date(chooser.getDate().getTime());
Berikut saya berikan contoh source code cara menggunakan JDateChooser di Java Swing. pada source code tersebut saya memberikan contoh cara pengambilan nilai atau value dari JDateChooser ke JTable dan dari JTable ke JDateChooser ketika melakukan aksi klik (ListSelectionListener) pada JTable.
Baca Juga : Cara Membuat Tabel pada Java Swing
import com.toedter.calendar.JDateChooser; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.event.*; import javax.swing.*; import java.sql.Date; import javax.swing.event.*; import javax.swing.table.DefaultTableModel; /** * * @author Akira */ public class ContohJDateChooser extends JFrame implements ActionListener, ListSelectionListener{ private JTextField nama, tempatlahir; private JDateChooser chooser; private JTable tbl; private DefaultTableModel tblModel; private JButton addBtn, cancelBtn; public ContohJDateChooser() { setTitle("Contoh JDateChooser"); setSize(420, 450); setDefaultCloseOperation(EXIT_ON_CLOSE); setResizable(false); setLocationRelativeTo(null); userInterface(); setVisible(true); } private void userInterface(){ JPanel pan_1 = new JPanel(new FlowLayout(FlowLayout.LEFT, 5, 5)); pan_1.setPreferredSize(new Dimension(400, 170)); JLabel l_nama = new JLabel("Nama"); l_nama.setPreferredSize(new Dimension(120, 30)); pan_1.add(l_nama); nama = new JTextField(); nama.setPreferredSize(new Dimension(250, 30)); pan_1.add(nama); JLabel l_tmpt = new JLabel("Tempat Lahir"); l_tmpt.setPreferredSize(new Dimension(120, 30)); pan_1.add(l_tmpt); tempatlahir = new JTextField(); tempatlahir.setPreferredSize(new Dimension(250, 30)); pan_1.add(tempatlahir); JLabel l_tgl = new JLabel("Tanggal Lahir"); l_tgl.setPreferredSize(new Dimension(120, 30)); pan_1.add(l_tgl); chooser = new JDateChooser(); chooser.setDateFormatString("dd MMMM yyyy"); chooser.setPreferredSize(new Dimension(250, 30)); pan_1.add(chooser); JPanel panBtn = new JPanel(new FlowLayout(FlowLayout.CENTER)); panBtn.setPreferredSize(new Dimension(390, 50)); addBtn = new JButton("Simpan"); addBtn.setPreferredSize(new Dimension(80, 30)); panBtn.add(addBtn); addBtn.addActionListener(this); cancelBtn = new JButton("Batal"); cancelBtn.setPreferredSize(new Dimension(80, 30)); panBtn.add(cancelBtn); cancelBtn.addActionListener(this); pan_1.add(panBtn); tblModel = new DefaultTableModel(); tbl = new JTable(tblModel); tblModel.setColumnIdentifiers(new Object[]{ "Nama", "Tempat Lahir", "Tanggal Lahir" }); tbl.getSelectionModel().addListSelectionListener(this); tbl.getColumnModel().getColumn(2).setCellRenderer(new TanggalCellRenderer()); getContentPane().add(new JScrollPane(tbl)); getContentPane().add(pan_1, "North"); } private void clear(){ nama.setText(""); tempatlahir.setText(""); chooser.setDate(null); } private void addBtn(){ java.sql.Date sql = new java.sql.Date(chooser.getDate().getTime()); tblModel.addRow(new Object[]{nama.getText(), tempatlahir.getText(), sql}); } @Override public void actionPerformed(ActionEvent e) { if(e.getSource()==addBtn){ addBtn(); clear(); } else if(e.getSource()==cancelBtn){ clear(); } } @Override public void valueChanged(ListSelectionEvent e) { int row = tbl.getSelectedRow(); if(row >= 0){ nama.setText(tbl.getValueAt(row, 0).toString()); tempatlahir.setText(tbl.getValueAt(row, 1).toString()); chooser.setDate(Date.valueOf(tbl.getValueAt(row, 2).toString())); } } public static void main(String[] args){ ContohJDateChooser obj = new ContohJDateChooser(); } }
Source code diatas membutuhkan class TanggalCellRenderer, karena pada contoh pembuatan JDateChooser tersebut saya menggunakan JTable untuk menampung datanya dan pada kolom Tanggal Lahir saya ubah CellRenderer-nya. Untuk membuat class java TanggalCellRenderer.
Silahkan Baca : Cara Mengubah CellRenderer JTable di Java Swing
Silahkan Baca : Cara Mengubah CellRenderer JTable di Java Swing
Sekian tutorial cara menggunakan JDateChooser, semoga bermanfaat. Silahkan tinggalkan komentar.
Izin saya jadikan referensi yaa min. Terima kasih banyak.
BalasHapussilahkan
Hapus