Cara Menggunakan JDateChooser atau JCalendar di Java Swing - Java Community

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.

Cara Menggunakan JDateChooser atau JCalendar di Java Swing

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 :

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

Sekian tutorial cara menggunakan JDateChooser, semoga bermanfaat. Silahkan tinggalkan komentar.

Copyrighted.com Registered & Protected 
YYQA-QTUE-DG8T-ZCEX

Subscribe to receive free email updates:

2 Responses to "Cara Menggunakan JDateChooser atau JCalendar di Java Swing"