Interface Date_selector
-
- All Known Implementing Classes:
Date_selector_dialog
,Date_selector_panel
,Navigable_date_selector
,Time_date_selector
,Titled_date_selector
public interface Date_selector
An interface for Date selection.See
Date_selector_panel
for a discussion of how date selectors look and work. This interface defines the public methods of that class to allow for the use of a Gang-of-Four Decorator to add optional labels.Most of the interface methods have to do with action-listeners support. The listeners are notified in two situations, which can be distinguished from one another by calling
AWTEvent.getID()
:getID()
Returns:Description: CHANGE_ACTION
This event is sent when the calendar panel changes the displayed month or year (tyically because some sort of navigator bar asked it to). Call event
.getActionCommand()
to get a string holding the current (after the scroll) month and year. You can also callget_current_date()
to get get the date the user selected.SELECT_ACTION
Sent every time the user clicks on a date. Call event
.getActionCommand()
to get a string representing the selected date. (This string takes the same form as the one returned byDate.toString()
.) You can also callget_selected_date()
to get get the date the user selected.The following example demonstrates how to create a single JPanel that contains a title displaying the name of the current month and year as well as a calendar for that date. The ActionListener automatically updates the label every time the user navigates to another month. (You will rarely have to do this, since the
Titled_date_selector
class will handle exactly that problem for you, but the example demonstrates the technique.)private static JPanel create_calendar_pane(Date_selector s) { JPanel panel = new JPanel(); panel.setLayout(new BorderLayout()); final JLabel month = new JLabel("MMM YYYY"); s.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (e.getID() == Date_selector.CHANGE_ACTION) month.setText(e.getActionCommand()); else System.out.println(e.getActionCommand()); } }); panel.add(month, BorderLayout.NORTH); panel.add(s, BorderLayout.CENTER); return panel; }
Classes that implement this interface must also
extend Container
or someContainer
derivative. (You can't mandate this in the compiler because Container is not an interface, so can't be a base class of Date_selector.)- See Also:
Date_selector_panel
,Date_selector_dialog
-
-
Field Summary
Fields Modifier and Type Field Description static int
CHANGE_ACTION
static int
COMMIT_ACTION
static int
SELECT_ACTION
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
addActionListener(java.awt.event.ActionListener l)
int
get(int flag)
Must work just likeCalendar.get(int)
java.util.Date
get_current_date()
java.util.Date
get_selected_date()
javax.swing.JComponent
getComponent()
void
removeActionListener(java.awt.event.ActionListener l)
void
roll(int flag, boolean up)
Must work just likeCalendar.roll(int, boolean)
void
set_selected_date(java.util.Date d)
-
-
-
Field Detail
-
CHANGE_ACTION
static final int CHANGE_ACTION
- See Also:
- Constant Field Values
-
SELECT_ACTION
static final int SELECT_ACTION
- See Also:
- Constant Field Values
-
COMMIT_ACTION
static final int COMMIT_ACTION
- See Also:
- Constant Field Values
-
-
Method Detail
-
addActionListener
void addActionListener(java.awt.event.ActionListener l)
-
removeActionListener
void removeActionListener(java.awt.event.ActionListener l)
-
get_selected_date
java.util.Date get_selected_date()
-
get_current_date
java.util.Date get_current_date()
-
set_selected_date
void set_selected_date(java.util.Date d)
-
roll
void roll(int flag, boolean up)
Must work just likeCalendar.roll(int, boolean)
-
get
int get(int flag)
Must work just likeCalendar.get(int)
-
getComponent
javax.swing.JComponent getComponent()
-
-