[Pemrograman]Membuat Calender dengan Java Swing


Sudah lama tak mengupdate blog,karena semalem ada yang tanya gimana sih cara buat calender di java dalam bentuk table,maka hari ini saya posting biar tidak mati penasaran :p
komponen yang di butuhkan adalah Java.Util.Date

ini sourcecodenya

package newbieilmu.javaswing.calender;

import javax.swing.*;
import javax.swing.table.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Date;
import com.jtattoo.plaf.acryl.AcrylLookAndFeel;

public class Calender extends JFrame implements ActionListener {

  // Deklarasi
  JComboBox pilihTahun,pilihBulan;
  JScrollPane scr;
  Date dt = new Date();
  int tgl = dt.getDate();
  int thn, bln, d, w;
  DefaultTableModel tabMode;
  String[][] nilaiBulan;
  JTable tabel;
  String[] row_0 = new String[7];
  Object[] row_1 = new Object[7];
  Object[] row_2 = new Object[7];
  Object[] row_3 = new Object[7];
  Object[] row_4 = new Object[7];
  Object[] row_5 = new Object[7];
  Object[] row_6 = new Object[7];
  JLabel today = new JLabel();

  // MAIN
  public static void main(String[] args) {
	  try{

			UIManager.setLookAndFeel(new AcrylLookAndFeel());
			}
		catch (UnsupportedLookAndFeelException e){
	//handle exception
		}
	  Calender frame1 = new Calender();
    frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame1.setResizable(false);
    frame1.setTitle("Kalender");
    frame1.setSize(295, 235);
    frame1.setVisible(true);
  }

  // KONSTRUKTOR
  public Calender() {
    // Set Layout
    this.getContentPane().setLayout(null);

    // Membuat String Array itemBulan
    String[] itemBulan = {
        "Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli",
        "Agustus", "September", "Oktober", "November", "Desember"};
    // Menambahkan itemBulan pada komponen JComboBox (pilihBulan)
    pilihBulan  = new JComboBox(itemBulan);
    // Mengatur Komponen
    pilihBulan.setEditable(true);
    pilihBulan.setBounds(new Rectangle(12, 9, 99, 21));

    // Membuat dan menambahkan item JComboBox (pilihTahun)
    pilihTahun = new JComboBox();
    pilihTahun.setEditable(true);
    pilihTahun.setBounds(new Rectangle(154, 8, 110, 21));
    int i = 1900;
    for (i = 1900; i < 2099; i++) {
      String a = Integer.toString(i);
      String item = a;
      // Menambahkan item
      pilihTahun.addItem(item);
    }

    // Mengambil tahun dan bulan
    thn = dt.getYear();
    bln = dt.getMonth()+1;
    // Membuat String Array namaHari
    String[] namaHari = {
        "Min", "Sen", "Sel", "Rab", "Kam", "Jum", "Sab"};
    // Memanggil methode buatCal untuk mendapatkan nilaiBulan
    buatCal(thn, bln);
    // Membuat TableModel dengan parameter nilaiBulan dan namaHari
    tabMode = new DefaultTableModel(nilaiBulan, namaHari);
    // Membuat Table dengan parameter tabMode
    tabel = new JTable(tabMode);

    // Membuat JScrollPane
    scr = new JScrollPane();
    scr.setBounds(new Rectangle(11, 35, 258, 136));
    // Menambahkan tabel pada ScrollPane
    scr.getViewport().add(tabel);

    // Set Select komponen
    pilihTahun.setSelectedIndex(thn);
    pilihBulan.setSelectedIndex(bln-1);
    // Menambahkan Action Listener
    pilihBulan.addActionListener(this);
    pilihTahun.addActionListener(this);
    // Mengatur Label
    today.setBounds(new Rectangle(11, 177, 259, 22));
    today.setText("Today :    " + tgl + " / " + (bln + 1) + " / " + (thn + 1900));
    // Menambahkan Komponen pada Frame
    this.getContentPane().add(pilihBulan);
    this.getContentPane().add(pilihTahun);
    this.getContentPane().add(today);
    this.getContentPane().add(scr);

  }

  /**
   * Methode getDatInMon
   * Ket : Mengambil jumlah hari dari bulan Sekarang
   * @param mon int : bulan
   * @param yer int : tahun
   * @return int : int
   */
  public int getDayInMon(int mon, int yer) {
    Date prevDay = new Date(yer, mon, 0);
    return prevDay.getDate();
  }

  /**
   * Methode buatCal
   * Ket : Untuk menghasilkan nilai-nilai tanggal (Kalender)
   * @param yer int : tahun
   * @param mon int : bulan
   * @return String[][] : nilai tanggal
   */
  public void buatCal(int yer, int mon) {
    // Mengosongkan nilai String Array
    nilaiBulan = new String[7][7];
    row_0 = new String[7];
    // Mengambil nilai waktu sekarang
    Date bulan = new Date(yer, mon - 1, 1);
    int iDayOfFirst = bulan.getDay();
    int iDaysInMonth = getDayInMon(mon, yer);
    int iVarDate = 1;
    // Mendapatkan nilai hari yang pertama
    for (d = iDayOfFirst; d < 7; d++) {
      String tanggal = Integer.toString(iVarDate);
      if (iVarDate == tgl) {
        tanggal = "((" + tanggal + "))";
      }
      nilaiBulan[0][d] = tanggal;
      // nilai hari baris 1
      row_0[d] = nilaiBulan[0][d];
      iVarDate++;
    }
    // Mendapatkan nilai hari berikutnya
    for (w = 1; w < 7; w++) {
      for (d = 0; d < 7; d++) {
        if (iVarDate <= iDaysInMonth) {
          String tanggal = Integer.toString(iVarDate);
          if (iVarDate == tgl) {
            tanggal = "((" + tanggal + "))";
          }
          nilaiBulan[w][d] = tanggal;
          // nilai hari baris 2 - 7
          row_1[d] = nilaiBulan[1][d];
          row_2[d] = nilaiBulan[2][d];
          row_3[d] = nilaiBulan[3][d];
          row_4[d] = nilaiBulan[4][d];
          row_5[d] = nilaiBulan[5][d];
          row_6[d] = nilaiBulan[6][d];
          iVarDate++;
        }
      }
    }

  }

  /**
   * Methode actionPerformed
   * Ket : Merespon nilai yang dipilih dari komponen JComboBox
   * @param e ActionEvent
   */
  public void actionPerformed(ActionEvent e) {
    // Mengambil nilai pilihTahun
    String tahun = (String) pilihTahun.getSelectedItem();
    thn = Integer.parseInt(tahun) - 1900;
    // Mengambil nilai pilihBulan
    int bulan = pilihBulan.getSelectedIndex();
    bln = bulan + 1;
    // Menghapus semua Baris dari tabel
    for (int is = 0; is < 7; is++) {
      tabMode.removeRow(0);
    }
    // Memanggil methode buatCal
    buatCal(thn, bln);
    // Menambahkan Baris pada Tabel
    tabMode.addRow(row_0);
    tabMode.addRow(row_1);
    tabMode.addRow(row_2);
    tabMode.addRow(row_3);
    tabMode.addRow(row_4);
    tabMode.addRow(row_5);
    tabMode.addRow(row_6);
  }

} // Akhir Kelas

beginilah viewnya

Anugrah Bagus Susilo
[email : anugrah.baguz@newbieilmu.16mb.com]

10 pemikiran pada “[Pemrograman]Membuat Calender dengan Java Swing

  1. koq keluar error

    Calender.java:6: package com.jtattoo.plaf.acryl does not exist
    import com.jtattoo.plaf.acryl.AcrylLookAndFeel;
    ^
    Calender.java:32: cannot find symbol
    symbol : class AcrylLookAndFeel
    location: class Calender
    UIManager.setLookAndFeel(new AcrylLookAndFeel());
    ^
    Note: Calender.java uses or overrides a deprecated API.
    Note: Recompile with -Xlint:deprecation for details.
    2 errors

  2. coba nama package nya di buat komentar
    ex :
    //package newbieilmu.javaswing.calender;

  3. mas, punya ebook tutorial java swing ga?, kalo ada tolong di upload ya.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s