📄 jdatepanel.java
字号:
}
return actionListeners;
}
/**
* Returns a clone of the Calender object holding the date internally
* @return Calendar
*/
public Calendar getCalendarClone(){
return getCalenderModel().getCalendarClone();
}
private GregorianCalendarModel getCalenderModel() {
if (calendarModel == null) {
calendarModel = new GregorianCalendarModel();
calendarModel.addChangeListener(eventHandler);
}
return calendarModel;
}
/**
* This method initializes centerPanel
*
* @return javax.swing.JPanel
*/
private javax.swing.JPanel getCenterPanel() {
if (centerPanel == null) {
centerPanel = new javax.swing.JPanel();
centerPanel.setLayout(new java.awt.BorderLayout());
centerPanel.setOpaque(false);
centerPanel.add(getDayTableHeader(), java.awt.BorderLayout.NORTH);
centerPanel.add(getDayTable(), java.awt.BorderLayout.CENTER);
}
return centerPanel;
}
private Vector getChangeListeners(){
if (changeListeners == null) {
changeListeners = new Vector();
}
return changeListeners;
}
/**
* This method initializes dayTable
*
* @return javax.swing.JTable
*/
private javax.swing.JTable getDayTable() {
if (dayTable == null) {
dayTable = new javax.swing.JTable();
dayTable.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_ALL_COLUMNS);
//dayTable.setOpaque(false);
dayTable.setPreferredSize(new java.awt.Dimension(100,80));
dayTable.setModel(getCalenderModel());
dayTable.setShowGrid(true);
dayTable.setGridColor(Color.WHITE);
dayTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
dayTable.setCellSelectionEnabled(true);
dayTable.setRowSelectionAllowed(true);
dayTable.setFocusable(false);
dayTable.addMouseListener(getEventHandler());
TableColumn column = null;
for (int i = 0; i < 7; i++) {
column = dayTable.getColumnModel().getColumn(i);
column.setPreferredWidth(15);
column.setCellRenderer(getDayTableCellRenderer());
}
}
return dayTable;
}
private CalendarTableCellRenderer getDayTableCellRenderer() {
if (dayTableCellRenderer == null) {
dayTableCellRenderer = new CalendarTableCellRenderer();
}
return dayTableCellRenderer;
}
private JTableHeader getDayTableHeader() {
if (dayTableHeader == null) {
dayTableHeader = getDayTable().getTableHeader();
dayTableHeader.setResizingAllowed(false);
dayTableHeader.setReorderingAllowed(false);
dayTableHeader.setDefaultRenderer(getDayTableCellRenderer());
}
return dayTableHeader;
}
private EventHandler getEventHandler() {
if (eventHandler == null) {
eventHandler = new EventHandler();
}
return eventHandler;
}
/**
* This method initializes monthLabel
*
* @return javax.swing.JLabel
*/
private javax.swing.JLabel getMonthLabel() {
if (monthLabel == null) {
monthLabel = new javax.swing.JLabel();
monthLabel.setForeground(java.awt.SystemColor.activeCaptionText);
monthLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
monthLabel.setText("uninitialised");
monthLabel.addMouseListener(getEventHandler());
getCalenderModel().addMonthLabel(monthLabel);
}
return monthLabel;
}
/**
* This method initializes monthPopupMenu
*
* @return javax.swing.JPopupMenu
*/
private javax.swing.JPopupMenu getMonthPopupMenu() {
if (monthPopupMenu == null) {
monthPopupMenu = new javax.swing.JPopupMenu();
JMenuItem[] menuItems = getMonthPopupMenuItems();
for (int i=0; i<menuItems.length; i++) {
monthPopupMenu.add(menuItems[i]);
}
}
return monthPopupMenu;
}
private JMenuItem[] getMonthPopupMenuItems(){
if (monthPopupMenuItems == null) {
DateFormatSymbols df = new DateFormatSymbols();
String[] months = df.getMonths();
monthPopupMenuItems = new JMenuItem[months.length-1];
for (int i=0; i<months.length-1; i++) {
JMenuItem mi = new JMenuItem(months[i]);
mi.addActionListener(eventHandler);
monthPopupMenuItems[i] = mi;
}
}
return monthPopupMenuItems;
}
/**
* This method initializes nextMonthButton
*
* @return javax.swing.JButton
*/
private javax.swing.JButton getNextMonthButton() {
if (nextMonthButton == null) {
nextMonthButton = new javax.swing.JButton(new JNextIcon(4,7));
nextMonthButton.setText("");
nextMonthButton.setPreferredSize(new java.awt.Dimension(20,15));
nextMonthButton.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));
nextMonthButton.setFocusable(false);
nextMonthButton.addActionListener(getEventHandler());
nextMonthButton.setToolTipText("Next Month");
}
return nextMonthButton;
}
/**
* This method initializes nextYearButton
*
* @return javax.swing.JButton
*/
private javax.swing.JButton getNextYearButton() {
if (nextYearButton == null) {
nextYearButton = new javax.swing.JButton(new JNextIcon(8,7, true));
nextYearButton.setText("");
nextYearButton.setPreferredSize(new java.awt.Dimension(20,15));
nextYearButton.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));
nextYearButton.setFocusable(false);
nextYearButton.addActionListener(getEventHandler());
nextYearButton.setToolTipText("Next Year");
}
return nextYearButton;
}
/**
* This method initializes northCenterPanel
*
* @return javax.swing.JPanel
*/
private javax.swing.JPanel getNorthCenterPanel() {
if (northCenterPanel == null) {
northCenterPanel = new javax.swing.JPanel();
northCenterPanel.setLayout(new java.awt.BorderLayout());
northCenterPanel.setBorder(javax.swing.BorderFactory.createEmptyBorder(0,5,0,5));
northCenterPanel.setOpaque(false);
northCenterPanel.add(getMonthLabel(), java.awt.BorderLayout.CENTER);
northCenterPanel.add(getYearSpinner(), java.awt.BorderLayout.EAST);
}
return northCenterPanel;
}
/**
* This method initializes northPanel
*
* @return javax.swing.JPanel
*/
private javax.swing.JPanel getNorthPanel() {
if (northPanel == null) {
northPanel = new javax.swing.JPanel();
northPanel.setLayout(new java.awt.BorderLayout());
northPanel.setName("");
northPanel.setBorder(javax.swing.BorderFactory.createEmptyBorder(3,3,3,3));
northPanel.setBackground(java.awt.SystemColor.activeCaption);
northPanel.add(getPreviousButtonPanel(), java.awt.BorderLayout.WEST);
northPanel.add(getNextButtonPanel(), java.awt.BorderLayout.EAST);
northPanel.add(getNorthCenterPanel(), java.awt.BorderLayout.CENTER);
}
return northPanel;
}
/**
* This method initializes previousButtonPanel
*
* @return javax.swing.JPanel
*/
private javax.swing.JPanel getPreviousButtonPanel() {
if (previousButtonPanel == null) {
previousButtonPanel = new javax.swing.JPanel();
java.awt.GridLayout layout = new java.awt.GridLayout(1,2);
layout.setHgap(3);
previousButtonPanel.setLayout(layout);
previousButtonPanel.setName("");
previousButtonPanel.setBackground(java.awt.SystemColor.activeCaption);
if (isShowYearButtons()) {
previousButtonPanel.add(getPreviousYearButton());
}
previousButtonPanel.add(getPreviousMonthButton());
}
return previousButtonPanel;
}
/**
* This method initializes nextButtonPanel
*
* @return javax.swing.JPanel
*/
private javax.swing.JPanel getNextButtonPanel() {
if (nextButtonPanel == null) {
nextButtonPanel = new javax.swing.JPanel();
java.awt.GridLayout layout = new java.awt.GridLayout(1,2);
layout.setHgap(3);
nextButtonPanel.setLayout(layout);
nextButtonPanel.setName("");
nextButtonPanel.setBackground(java.awt.SystemColor.activeCaption);
nextButtonPanel.add(getNextMonthButton());
if (isShowYearButtons()) {
nextButtonPanel.add(getNextYearButton());
}
}
return nextButtonPanel;
}
/**
* This method initializes previousMonthButton
*
* @return javax.swing.JButton
*/
private javax.swing.JButton getPreviousMonthButton() {
if (previousMonthButton == null) {
previousMonthButton = new javax.swing.JButton(new JPreviousIcon(4,7));
previousMonthButton.setText("");
previousMonthButton.setPreferredSize(new java.awt.Dimension(20,15));
previousMonthButton.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));
previousMonthButton.setFocusable(false);
previousMonthButton.addActionListener(getEventHandler());
previousMonthButton.setToolTipText("Previous Month");
}
return previousMonthButton;
}
/**
* This method initializes previousMonthButton
*
* @return javax.swing.JButton
*/
private javax.swing.JButton getPreviousYearButton() {
if (previousYearButton == null) {
previousYearButton = new javax.swing.JButton(new JPreviousIcon(8,7, true));
previousYearButton.setText("");
previousYearButton.setPreferredSize(new java.awt.Dimension(20,15));
previousYearButton.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));
previousYearButton.setFocusable(false);
previousYearButton.addActionListener(getEventHandler());
previousYearButton.setToolTipText("Previous Year");
}
return previousYearButton;
}
/**
* This method initializes southPanel
*
* @return javax.swing.JPanel
*/
private javax.swing.JPanel getSouthPanel() {
if (southPanel == null) {
southPanel = new javax.swing.JPanel();
southPanel.setLayout(new java.awt.BorderLayout());
//southPanel.setOpaque(false);
southPanel.setBackground(Color.WHITE);
southPanel.setBorder(javax.swing.BorderFactory.createEmptyBorder(3,3,3,3));
southPanel.add(getTodayLabel(), java.awt.BorderLayout.CENTER);
}
return southPanel;
}
/**
* This method initializes todayLabel
*
* @return javax.swing.JLabel
*/
private javax.swing.JLabel getTodayLabel() {
if (todayLabel == null) {
todayLabel = new javax.swing.JLabel();
todayLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
todayLabel.setText("uninitialised");
todayLabel.addMouseListener(getEventHandler());
getCalenderModel().addTodayLabel(todayLabel);
}
return todayLabel;
}
/**
* This method initializes yearSpinner
*
* @return javax.swing.JSpinner
*/
private javax.swing.JSpinner getYearSpinner() {
if (yearSpinner == null) {
yearSpinner = new javax.swing.JSpinner();
yearSpinner.setModel(getCalenderModel());
}
return yearSpinner;
}
/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setLayout(new java.awt.BorderLayout());
this.setSize(200, 160);
this.setPreferredSize(new java.awt.Dimension(200,160));
this.setBackground(java.awt.SystemColor.activeCaptionText);
this.setBorder(javax.swing.BorderFactory.createLineBorder(java.awt.Color.black,1));
this.setOpaque(false);
this.add(getNorthPanel(), java.awt.BorderLayout.NORTH);
this.add(getSouthPanel(), java.awt.BorderLayout.SOUTH);
this.add(getCenterPanel(), java.awt.BorderLayout.CENTER);
}
/**
* removes the actionListener
* @param arg
*/
public void removeActionListener(ActionListener arg){
getActionListeners().remove(arg);
}
/**
* removes the specified change listener
* @param arg
*/
public void removeChangeListener(ChangeListener arg){
getChangeListeners().remove(arg);
}
/**
* Prints out the selectedDate in long format
*/
public String toString(){
DateFormat df = DateFormat.getDateInstance(DateFormat.LONG);
return df.format(calendarModel.getCalendarClone().getTime());
}
/**
* Set the tool tip text for the Previous Year Button.
* @param toolTipText
*/
public void setPreviousYearButtonToolTipText(String toolTipText) {
this.getPreviousYearButton().setToolTipText(toolTipText);
}
/**
* Gets the tool tip text for the Previous Year Button.
* @return the tool tip text for the previous year button
*/
public String getPreviousYearButtonToolTipText() {
return this.getPreviousYearButton().getToolTipText();
}
/**
* Set the tool tip text for the Next Year Button.
* @param toolTipText
*/
public void setNextYearButtonToolTipText(String toolTipText) {
this.getNextYearButton().setToolTipText(toolTipText);
}
/**
* Gets the tool tip text for the Next Year Button.
* @return the tool tip text for the next year button
*/
public String getNextYearButtonToolTipText() {
return this.getNextYearButton().getToolTipText();
}
/**
* Set the tool tip text for the Previous Month Button.
* @param toolTipText
*/
public void setPreviousMonthButtonToolTipText(String toolTipText) {
this.getPreviousMonthButton().setToolTipText(toolTipText);
}
/**
* Gets the tool tip text for the Previous Month Button.
* @return the tool tip text for the previous month button
*/
public String getPreviousMonthButtonToolTipText() {
return this.getPreviousMonthButton().getToolTipText();
}
/**
* Set the tool tip text for the Next Month Button.
* @param toolTipText
*/
public void setNextMonthButtonToolTipText(String toolTipText) {
this.getNextMonthButton().setToolTipText(toolTipText);
}
/**
* Gets the tool tip text for the Next Month Button.
* @return the tool tip text for the next month button
*/
public String getNextMonthButtonToolTipText() {
return this.getNextMonthButton().getToolTipText();
}
/**
* Sets the visibilty of the Year navigation buttons
* @param showYearButtons
*/
public void setShowYearButtons(boolean showYearButtons) {
this.showYearButtons = showYearButtons;
if (this.showYearButtons) {
getNextButtonPanel().add(getNextYearButton());
getPreviousButtonPanel().removeAll();
getPreviousButtonPanel().add(getPreviousYearButton());
getPreviousButtonPanel().add(getPreviousMonthButton());
} else {
getNextButtonPanel().remove(getNextYearButton());
getPreviousButtonPanel().remove(getPreviousYearButton());
}
}
/**
* Is the year navigation buttons active
* @return visiblity of the year
*/
public boolean isShowYearButtons() {
return this.showYearButtons;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -