Java Snippet

Java Project - Date Picker Applet

This date picker outputs the date 'picked' to a label (mm-dd-yyyy), change this to a variable if you want to use the date selected.

I tried writing this without swing components, but had to use the JComboBox

                                                              

Your browser does Not support Java Applets.

Java/Applet Code

import java.util.*;
import java.text.*;
import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;
import javax.swing.JComboBox;
 
public class DatePickerApplet extends Applet implements ActionListener , ItemListener
{
  Button btns[] = new Button[49];
  Button btnNext = new Button("Forward>>>");
  Button btnLast = new Button("<<<Back");
  Button btnSelect = new Button("Select");
  boolean selectedMonthShowing = true;
  Label lblSelection = new Label("Date selected = (no selection)");
  Calendar cal = Calendar.getInstance();
  String months[] = {"January","February","March","April",
  "May","June","July","August","September","October","November","December"};
  String years[] = new String[15];
  int mth = 0;
  int yr = 0;
  SimpleDateFormat sdf = new SimpleDateFormat("MM-dd-yyyy");
  JComboBox cboYears;
  JComboBox cboMonths = new JComboBox(months); 
  public void init()
  {
    Panel frame = new Panel(new BorderLayout());
    mth = cal.get(cal.MONTH);
    yr = cal.get(cal.YEAR);
    for(int i = 0; i < years.length; i++) years[i] = ""+(yr-2+i);
    cboYears = new JComboBox(years);
    cboYears.addItemListener(this);
    cboMonths.addItemListener(this);
    btnSelect.addActionListener(this);
    Panel top = new Panel(new FlowLayout());
    top.add(cboMonths);
    top.add(cboYears);
    top.add(btnSelect);
    Panel mid = new Panel(new GridLayout(7,7));
    String days[] = {"S","M","Tu","W","Th","F","S"};
    for(int i = 0; i < btns.length; i++)
    {
      btns[i] = new Button();
      btns[i].setFont(new Font("Arial",Font.BOLD, 12));
      btns[i].setSize(new Dimension(50,50));
      if(i < 7)
      {
        btns[i].setLabel(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);
    Panel bottom = new Panel(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();
    add(frame);
  }
 
  public void setDates()
  {
    for(int i = 7; i < btns.length; i++)
    {
      btns[i].setLabel("");
    }
    cal.set(yr,mth,1);
    cboMonths.setSelectedItem(months[cal.get(cal.MONTH)]);
    cboYears.setSelectedItem(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].setLabel(String.valueOf(ii));
      ii++;
      cal.add(cal.DATE,1);
      if(cal.get(cal.MONTH) != (1200 + mth)%12) break;
    }
    selectedMonthShowing = true;
  }
 
  public void itemStateChanged(ItemEvent event)
  {
    selectedMonthShowing = false;
  }
 
  public void actionPerformed(ActionEvent ae)
  {
    if(ae.getSource() == btnLast)
    {
      mth--;
      setDates();
    }
    else if(ae.getSource() == btnNext)
    {
      mth++;
      setDates();
    }
    else if(ae.getSource() == btnSelect)
    {
      yr = Integer.parseInt(cboYears.getSelectedItem().toString());
      mth = cboMonths.getSelectedIndex();    
      setDates();
      selectedMonthShowing = true;
    }
    else if(!selectedMonthShowing)
    {
      lblSelection.setText("Click 'Select' button");
    }
    else
    {
      for(int i = 7; i < btns.length; i++)
      {
        if(ae.getSource() == btns[i])
        {
          if(!btns[i].getLabel().equals(""))
          {
            Calendar cal2 = Calendar.getInstance();
            cal2.set(yr,mth,Integer.parseInt(btns[i].getLabel()));
            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