Date Picker

Java Snippet

Date Picker - Applet - Swing

This is a simple date picker applet, using swing components. Click on a date button for the label to display the date clicked.

Click to see another applet version    

import java.util.*;
import java.text.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
 
public class DatePickerAppletSwing extends JApplet implements ActionListener
{
  JButton btns[] = new JButton[49];
  JButton btnNext = new JButton("Forward>>>");
  JButton btnLast = new JButton("<<<Back");
  JLabel lblMth = new JLabel();
  JLabel lblYr = new JLabel();
  JLabel lblSelection = new JLabel("Date selected = (no selection)");
  Calendar cal = Calendar.getInstance();
  String months[] = {"January","February","March","April",
  "May","June","July","August","September","October","November","December"};
  int mth = 0;
  int yr = 0;
  SimpleDateFormat sdf = new SimpleDateFormat("MM-dd-yyyy");
 
  public void init()
  {
    JPanel frame = new JPanel();
    frame.setLayout(new BorderLayout());
    setSize(400,500);
    mth = cal.get(cal.MONTH);
    yr = cal.get(cal.YEAR);
    JPanel top = new JPanel(new FlowLayout());
    top.add(lblMth);
    top.add(lblYr);
    JPanel mid = new JPanel(new GridLayout(7,7));
    String days[] = {"S","M","Tu","W","Th","F","S"};
    for(int i = 0; i < btns.length; i++)
    {
      btns[i] = new JButton();
      btns[i].setFont(new Font("Arial",Font.BOLD, 12));
      btns[i].setPreferredSize(new Dimension(50,50));
      if(i < 7)
      {
        btns[i].setText(days[i]);
      }
      else
      {
        btns[i].addActionListener(this);
        btns[i].setFont(new Font("Arial",Font.BOLD, 12));
      }
      mid.add(btns[i]);
    }
    btnNext.addActionListener(this);
    btnLast.addActionListener(this);
    JPanel bottom = new JPanel(new FlowLayout());
    bottom.add(btnLast);
    bottom.add(lblSelection);
    bottom.add(btnNext);
    frame.add(top,BorderLayout.NORTH);
    frame.add(mid,BorderLayout.CENTER);
    frame.add(bottom,BorderLayout.SOUTH);
    setDates();
    setContentPane(frame);
  }
 
  public void setDates()
  {
    for(int i = 7; i < btns.length; i++)
    {
      btns[i].setText("");
    }
    cal.set(yr,mth,1);
    lblMth.setText(months[cal.get(cal.MONTH)]);
    lblYr.setText(String.valueOf(cal.get(cal.YEAR)));
    int firstDay = cal.get(cal.DAY_OF_WEEK)-1+7;
    int ii = 1;
    for(int i = firstDay; i<firstDay+31; i++)
    {
      btns[i].setText(String.valueOf(ii));
      ii++;
      cal.add(cal.DATE,1);
      if(cal.get(cal.MONTH) != (1200 + mth)%12) break;
    }
  }
 
  public void actionPerformed(ActionEvent ae)
  {
    if(ae.getSource() == btnLast)
    {
      mth--;
      setDates();
    }
    else if(ae.getSource() == btnNext)
    {
      mth++;
      setDates();
    }
    else
    {
      for(int i = 7; i < btns.length; i++)
      {
        if(ae.getSource() == btns[i])
        {
          if(!btns[i].getText().equals(""))
          {
            Calendar cal2 = Calendar.getInstance();
            cal2.set(yr,mth,Integer.parseInt(btns[i].getText()));
            lblSelection.setText("Date selected = "+ sdf.format(cal2.getTime()));
          }
          else lblSelection.setText("Date selected = (no selection)");
          break;
        }
      }
    }
  }
}


back    top    main page    vb snippets page      java snippets page     vbscript snippets page   email    Page last modified