?? datechooser.java~1~
字號:
/**
* [DateChooser.java]
*
* Java 日期選擇控件(主體界面)
*
*
* 創建日期:(2003-10-25)
* @author:ONE_Fox
* @author:ONE_Fox@163.com
*/
package datechooser;
import java.awt.*;
import javax.swing.JComponent;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.border.LineBorder;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Date;
public class DateChooser extends JDialog {
//狀態配置-----------------------//
private static boolean isShow = false; //是否正在顯示
//數據配置-----------------------//
private static Calendar showMonth = new GregorianCalendar(); //默認首顯今天
private int startYear = 1950; //默認【最小】顯示年份
private int lastYear = 2050; //默認【最大】顯示年份
//界面配置-----------------------//
//放TablePanel與 ConfigLine 中間層
JPanel rootPanel = new JPanel(new BorderLayout(), true);
//TablePanel 日歷顯示表格
private TablePanel tablePanel = null;
//ConfigLine 控制條
private ConfigLine configLine = null;
//界面 大小/位置
/**
* 公開的界面大小屬性
*/
public static final int width = 190; //界面寬度
public static final int height = 170; //界面高度
private int local_X = 0; //顯示位置 X 坐標
private int local_Y = 0; //顯示位置 Y 坐標
//------構造方法--------------------------------------------------//
/**
* 構造方法1
*/
public DateChooser() {
makeFace(); //界面制作
}
/**
* 構造方法2
*
* @param owner java.awt.Frame
*/
public DateChooser(Frame owner) {
super(owner, "DateChooser", true); //設置父窗口
makeFace(); //界面制作
}
/**
* 構造方法3
*
* @param owner java.awt.Frame
* @param showMonth java.util.Calendar
* @param startYear int
* @param lastYear int
*/
public DateChooser(Frame owner, Calendar showMonth, int startYear,
int lastYear) {
super(owner, "DateChooser", true);
this.showMonth = showMonth;
this.startYear = startYear;
this.lastYear = lastYear;
makeFace(); //界面制作
}
/**
* 構造方法4
*
* @param showMonth java.util.Calendar
* @param startYear int
* @param lastYear int
*/
public DateChooser(Calendar showMonth, int startYear, int lastYear) {
super((Frame)null, "DateChooser", true);
this.showMonth = showMonth;
this.startYear = startYear;
this.lastYear = lastYear;
makeFace(); //界面制作
}
//------方法函數---------------------------------------------------//
/**
* 方法:界面制作
*/
private void makeFace() {
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
setResizable(false); //界面大小無法改變
//界面構建---------------------------//
tablePanel = new TablePanel(this, showMonth);
configLine = new ConfigLine(tablePanel, showMonth,
startYear, lastYear);
//界面屬性設置-----------------------//
setSize(width, height);
rootPanel.setBorder(new LineBorder(Pallet.backGroundColor, 2));
rootPanel.setBackground(Pallet.backGroundColor);
//總體布局---------------------------//
rootPanel.add(tablePanel, BorderLayout.CENTER);
rootPanel.add(configLine, BorderLayout.SOUTH);
getContentPane().add(rootPanel, BorderLayout.CENTER);
}
/**
* 方法:顯示界面
*
* @param invoker javax.swing.Component
* @param x int
* @param y int
*
* @return Date
*/
public Date showChooser(JComponent invoker, int x, int y) {
Point invokerOrigin;
if (invoker != null) {
if(isShow == true)
setVisible(false);
invokerOrigin = invoker.getLocationOnScreen();
setLocation(invokerOrigin.x + x, invokerOrigin.y + y);
} else {
if(isShow == true)
setVisible(false);
setLocation(x, y);
}
setVisible(true);
isShow = true;
return tablePanel.getDate();
}
/**
* 方法:界面隱藏
*/
public void hideChooser() {
setVisible(false);
}
/**
* 方法:取得選擇日期
*/
public Date getDate() {
return tablePanel.getDate();
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -