This tutorial provides the detailed flow of creating a date picker example in java where we will be creating two classes i.e. DatePickercker class and DatePickerExample class. DatePickercker class will deal with the actual logic of date picker and DatePickerExample class provides the steps to create JFrame in which JButton will be used for picking date and JTextField for displaying date etc.
-
- Open Eclipse, Go to File-> New-> Java Project, you will get below view
-
- A dialog box will pop up which will ask you to enter the project details.
-
- Select your project, from the package explorer as shown below :
-
- Follow the below steps to create new class
- Click on Project, right click on src -> New -> Class as shown below :
- Follow the below steps to create new class
-
-
- A dialog box will appear where you will have to set your class name and then select Finish button.
-
-
-
- Now create two classes one is DatePicker.java and second one is DatePickerExample.java .
-
DatePicker.java
In this DatePicker.java write the Actual logic code
//import statements
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
//create class
class DatePicker
{
//define variables
int month = java.util.Calendar.getInstance().get(java.util.Calendar.MONTH);
int year = java.util.Calendar.getInstance().get(java.util.Calendar.YEAR);
//create object of JLabel with alignment
JLabel l = new JLabel("", JLabel.CENTER);
//define variable
String day = "";
//declaration
JDialog d;
//create object of JButton
JButton[] button = new JButton[49];
public DatePicker(JFrame parent)//create constructor
{
//create object
d = new JDialog();
//set modal true
d.setModal(true);
//define string
String[] header = { "Sun", "Mon", "Tue", "Wed", "Thur", "Fri", "Sat" };
//create JPanel object and set layout
JPanel p1 = new JPanel(new GridLayout(7, 7));
//set size
p1.setPreferredSize(new Dimension(430, 120));
//for loop condition
for (int x = 0; x < button.length; x++)
{
//define variable
final int selection = x;
//create object of JButton
button[x] = new JButton();
//set focus painted false
button[x].setFocusPainted(false);
//set background colour
button[x].setBackground(Color.white);
//if loop condition
if (x > 6)
//add action listener
button[x].addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
day = button[selection].getActionCommand();
//call dispose() method
d.dispose();
}
});
if (x < 7)//if loop condition
{
button[x].setText(header[x]);
//set fore ground colour
button[x].setForeground(Color.red);
}
p1.add(button[x]);//add button
}
//create JPanel object with grid layout
JPanel p2 = new JPanel(new GridLayout(1, 3));
//create object of button for previous month
JButton previous = new JButton("<< Previous");
//add action command
previous.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
//decrement month by 1
month--;
//call method
displayDate();
}
});
p2.add(previous);//add button
p2.add(l);//add label
//create object of button for next month
JButton next = new JButton("Next >>");
//add action command
next.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
//increment month by 1
month++;
//call method
displayDate();
}
});
p2.add(next);// add next button
//set border alignment
d.add(p1, BorderLayout.CENTER);
d.add(p2, BorderLayout.SOUTH);
d.pack();
//set location
d.setLocationRelativeTo(parent);
//call method
displayDate();
//set visible true
d.setVisible(true);
}
public void displayDate()
{
for (int x = 7; x < button.length; x++)//for loop
button[x].setText("");//set text
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd");
//create object of SimpleDateFormat
java.util.Calendar cal = java.util.Calendar.getInstance();
//create object of java.util.Calendar
cal.set(year, month, 1); //set year, month and date
//define variables
int dayOfWeek = cal.get(java.util.Calendar.DAY_OF_WEEK);
int daysInMonth = cal.getActualMaximum(java.util.Calendar.DAY_OF_MONTH);
//condition
for (int x = 6 + dayOfWeek, day = 1; day <= daysInMonth; x++, day++)
//set text
button[x].setText("" + day);
l.setText(sdf.format(cal.getTime()));
//set title
d.setTitle("Date Picker");
}
public String setPickedDate()
{
//if condition
if (day.equals(""))
return day;
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("dd-MM-yyyy");
java.util.Calendar cal = java.util.Calendar.getInstance();
cal.set(year, month, Integer.parseInt(day));
return sdf.format(cal.getTime());
}
}
class Picker
{
public static void main(String[] args) // main method
{
//create object of JLabel and set label
JLabel label = new JLabel("Selected Date:");
//create object of JTextField and declare it final
final JTextField text = new JTextField(20);
//create object of JButton
JButton b = new JButton("popup");
//create object of JPanel
JPanel p = new JPanel();
p.add(label);
p.add(text);
p.add(b);
//create object of JFrame and declare it final
final JFrame f = new JFrame();
f.getContentPane().add(p);
f.pack();
f.setVisible(true);
//add action listener
b.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
//set text i.e. date
text.setText(new DatePicker(f).setPickedDate());
}
});
}
}
Example :
DatePickerExample.java
In this class write the code which creates JFrame, add JButton for picking date and add JTextField for displaying date.
//import statements
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;
//create class and extend with JFrame
public class DatePickerExample extends JFrame
{
//add JPanel to the contentPane
private JPanel contentPane;
//declare variable
private JTextField txtDate;
/**
* Launch the application.
*/
public static void main(String[] args)// main method
{ // it will call the run method on that object
EventQueue.invokeLater(new Runnable()
{
public void run()
{
try // try block
{
//create frame object
DatePickerExample frame = new DatePickerExample();
frame.setVisible(true);//set visible true
}
catch (Exception e) //catch the exception
{
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
//create constructor of class
public DatePickerExample()
{
//set title
setTitle("Date Picker ");
//set close operation on frame
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//set bounds of frame
setBounds(100, 100, 450, 300);
//create new JPanel in contentPane
contentPane = new JPanel();
//set border of frame
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
//set contentPane
setContentPane(contentPane);
//set layout null
contentPane.setLayout(null);
//create text field
txtDate = new JTextField();
//set bounds of text field
txtDate.setBounds(101, 107, 86, 20);
//add text field to contentPane
contentPane.add(txtDate);
//set columns
txtDate.setColumns(10);
//create button and there object
JButton btnNewButton = new JButton("New button");
//perform action listener
btnNewButton.addActionListener(new ActionListener()
{
//performed action
public void actionPerformed(ActionEvent arg0)
{
//create frame new object f
final JFrame f = new JFrame();
//set text which is collected by date picker i.e. set date
txtDate.setText(new DatePicker(f).setPickedDate());
}
});
//set button bound
btnNewButton.setBounds(223, 106, 27, 23);
//add button in contentPane
contentPane.add(btnNewButton);
}
}
Output :
You will get below output :
In this tutorial we learnt about how to use Date picker component in java with example.










thanks a lot.
This has help me lot. Thank you for post.