Results 1 to 5 of 5
Thread: date limit Java calendar GUI
- 01-20-2012, 10:37 PM #1
Member
- Join Date
- Jan 2012
- Posts
- 2
- Rep Power
- 0
date limit Java calendar GUI
Hi guys,
I'm creating a calendar in java GUI for a task manage program as follow:
I want to restrict the date that user can select, which means they cannot seclect date before today. The code in red is the part I did in order to achieve it. However, when i run the code with the main app, it disabled the same dates in every month. How can I improve it?????Java Code:import java.awt.*; import java.awt.event.*; import java.text.SimpleDateFormat; import java.util.Date; import javax.swing.*; public class DatePicker { int month = java.util.Calendar.getInstance().get(java.util.Calendar.MONTH); int year = java.util.Calendar.getInstance().get(java.util.Calendar.YEAR);; JLabel l = new JLabel("", JLabel.CENTER); String day = ""; JDialog d; JButton[] button = new JButton[49]; /** * Create a calendar to select a date. * */ public DatePicker(JFrame parent) { d = new JDialog(); d.setModal(true); String[] header = { "Sun", "Mon", "Tue", "Wed", "Thur", "Fri", "Sat" }; JPanel p1 = new JPanel(new GridLayout(7, 7)); p1.setPreferredSize(new Dimension(430, 120)); for (int x = 0; x < button.length; x++) { final int selection = x; button[x] = new JButton(); button[x].setFocusPainted(false); button[x].setBackground(Color.white); if (x > 6) { button[x].addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { day = button[selection].getActionCommand(); d.dispose(); } }); } if (x < 7) { button[x].setText(header[x]); button[x].setForeground(Color.red); } p1.add(button[x]); } JPanel p2 = new JPanel(new GridLayout(1, 3)); JButton previous = new JButton("<< Previous"); previous.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { month--; displayDate(); } }); p2.add(previous); p2.add(l); JButton next = new JButton("Next >>"); next.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { month++; displayDate(); } }); p2.add(next); d.add(p1, BorderLayout.CENTER); d.add(p2, BorderLayout.SOUTH); d.pack(); d.setLocationRelativeTo(parent); displayDate(); d.setVisible(true); } /** * Display the dates * * @return void */ public void displayDate() { for (int x = 7; x < button.length; x++) button[x].setText(""); java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat( "MMMM yyyy"); java.util.Calendar cal = java.util.Calendar.getInstance(); cal.set(year, month, 1); int dayOfWeek = cal.get(java.util.Calendar.DAY_OF_WEEK); int daysInMonth = cal.getActualMaximum(java.util.Calendar.DAY_OF_MONTH); for (int x = 6 + dayOfWeek, day = 1; day <= daysInMonth; x++, day++) { button[x].setText("" + day); l.setText(sdf.format(cal.getTime())); d.setTitle("Date Picker"); [COLOR="#FF0000"]for (int y = 7; y < button.length; y++) { String str = button[x].getText(); int m = Integer.parseInt(str); SimpleDateFormat fm = new SimpleDateFormat("MMMM yyyy"); String dfm = fm.format(new Date()); SimpleDateFormat format = new SimpleDateFormat("dd"); String date = format.format(new Date()); int n = Integer.parseInt(date); if ((m < n) && (dfm.equals(l.getText()))) button[x].setEnabled(false); }[/COLOR] } } /** * Set the selected date to the Task Time area. * * @return a String of date and time */ public String setPickedDate() { if (day.equals("")) return day; java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat( " dd/MM/yyyy hh:mm:ss"); java.util.Calendar cal = java.util.Calendar.getInstance(); cal.set(year, month, Integer.parseInt(day)); return sdf.format(cal.getTime()); } }
Thank you very much and sorry about my English its not very good.Last edited by Norm; 01-20-2012 at 10:53 PM. Reason: added code tags
- 01-20-2012, 10:56 PM #2
Re: date limit Java calendar GUI
Do you have code for testing the above?
- 01-20-2012, 11:02 PM #3
Re: date limit Java calendar GUI
Please use code tags when posting code.
What is the code you posted supposed to do?
How/where is the Cal class's constructor called?Last edited by Norm; 01-20-2012 at 11:07 PM.
- 01-20-2012, 11:02 PM #4
Member
- Join Date
- Jan 2012
- Posts
- 2
- Rep Power
- 0
Re: date limit Java calendar GUI
Here you go thanks for ur attentionJava Code:import java.awt.BorderLayout; import java.awt.event.*; import javax.swing.*; import javax.swing.border.EmptyBorder; public class cal extends JFrame { private JPanel contentPane; /** * Launch the application. */ public static void main(String[] args) { JLabel label = new JLabel("Selected Date:"); final JTextField text = new JTextField(20); JButton b = new JButton("popup"); JPanel p = new JPanel(); p.add(label); p.add(text); p.add(b); final JFrame f = new JFrame(); f.getContentPane().add(p); f.pack(); f.setVisible(true); b.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { text.setText(new DatePicker(f).setPickedDate()); } }); } /** * Create the frame to select a date. */ public cal() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 450, 300); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); contentPane.setLayout(new BorderLayout(0, 0)); setContentPane(contentPane); } }Last edited by cuti; 01-20-2012 at 11:10 PM.
- 01-20-2012, 11:13 PM #5
Similar Threads
-
Help with date compare in calendar
By aksis in forum New To JavaReplies: 1Last Post: 12-01-2011, 08:48 PM -
Manually setting a date using Calendar and Date
By ravl13 in forum New To JavaReplies: 3Last Post: 10-25-2011, 11:12 PM -
Creating a Gregorian Calendar using a Date object gives date - 1
By prachi_goliwadekar in forum New To JavaReplies: 1Last Post: 05-08-2008, 08:32 PM -
java Date and Calendar
By valoyivd in forum New To JavaReplies: 1Last Post: 03-30-2008, 06:49 PM -
Calendar.DATE
By mew in forum New To JavaReplies: 1Last Post: 01-04-2008, 07:51 PM


LinkBack URL
About LinkBacks
Reply With Quote

Bookmarks