Would you like to make this site your homepage? It's fast and easy...
Yes, Please make this my home page!
Date Picker
Date Picker - Swing
This is a simple date picker application, using swing components. Click
on a date button to trigger a message box displaying the date clicked. Change
this part of the code to capture the date into a variable, for later use in a
program.
Click to see the applet version
import java.util.*;
import
java.text.*;
import javax.swing.*;
import java.awt.*;
import
java.awt.event.*;
class DatePickerSwing extends JFrame implements
ActionListener
{
private static JButton btns[] = new
JButton[49];
private static JButton btnNext = new JButton("Forward 1
Month >>>");
private static JButton btnLast = new
JButton("<<< Back 1 Month");
private static JLabel lblMth =
new JLabel();
private static JLabel lblYr = new JLabel();
private static Calendar cal = Calendar.getInstance();
private static
String months[] = {"January","February","March","April",
"May","June","July","August","September","October","November","December"};
private static int mth = 0;
private static int yr = 0;
SimpleDateFormat sdf = new SimpleDateFormat("EEEE, dd MMMM yyyy");
public DatePickerSwing()
{
super("Date Picker");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container
frame = getContentPane();
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(btnNext);
frame.add(top,BorderLayout.NORTH);
frame.add(mid,BorderLayout.CENTER);
frame.add(bottom,BorderLayout.SOUTH);
setDates();
setLocation(300,200);
pack();
setContentPane(frame);
setVisible(true);
}
private static 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()));
JOptionPane.showMessageDialog(null,"You selected "
+
sdf.format(cal2.getTime()));
}
break;
}
}
}
}
public static void main(String args[]) {new
DatePickerSwing();}
}
back
top
main page
vb snippets page
java snippets page
vbscript snippets page
email
Page last modified