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;
}
}
}
}
}