|
|

Java 日期选择控件 DateChooser
本来要做个小玩具,放弃了,改成这个控件。 呵,呵呵!
应该还算可以用的吧,每天上课没做太多测试....Sorry
代码/测试下载:点我
特点: 比较漂亮,默认的配色跟我桌上的日历本一样。 你也可以自己修改配色。
使用方便,两三行代码就ok了
控制条里的按钮按住半秒后会快速翻动
类似的控件好像 VB VC 里有, Java 的见过一个, 不好看,使用也不方便。
+++++++++++++++++++++++++++++++++++++++++++++++++ [Test.java] 测试类
==== package datechooser ====
[DateChooser.java] Java 日期选择控件(主体类) [public]
[TablePanel.java] 日历表格面板
[ConfigLine.java] 控制条类
[RoundBox.java] 限定选择控件
[MonthMaker.java] 月份表算法类
[Pallet.java] 调色板,统一配色类 [public]
+++++++++++++++++++++++++++++++++++++++++++++++++
=========================== 测试类代码 ======================================
-
- /**
- * [Test.java]
- *
- * 测试类
- *
- * 创建日期:(2003-10-26)
- * @author:ONE_Fox
- * @author:ONE_Fox@163.com
- */
-
-
- import datechooser.DateChooser;
- import datechooser.Pallet;
-
- import java.awt.*;
- import java.awt.event.*;
- import javax.swing.*;
-
- import java.util.Date;
- import java.text.SimpleDateFormat;
-
-
-
- public class Test extends JFrame {
-
-
- //界面组件----------------//
- private JTextField showField = new JTextField(15);
- private JButton testButton = new JButton("Tset Button");
-
-
- //有父窗口(Farm),不带日期参数的 DateChooser
- private DateChooser dateChooser = new DateChooser(this);
-
-
- /**
- * **其他构造方法**
- **
- //无父窗口,不带日期参数的 DateChooser
- new DateChooser();
-
- //有父窗口,带日期参数的 DateChooser
- new DateChooser(Frame owner, Calendar showMonth, int startYear,
- int lastYear);
-
- //无父窗口,带日期参数的 DateChooser
- new DateChooser(Calendar showMonth, int startYear, int lastYear);
- */
-
-
-
-
- /**
- * **界面配色**
- **
-
- static {
-
- Pallet.backGroundColor = Color.gray; //底色
-
-
- //月历表格配色----------------//
- Pallet.palletTableColor = Color.white; //日历表底色
- Pallet.todayBackColor = Color.pink; //今天背景色
-
- Pallet.weekFontColor = Color.white; //星期文字色
- Pallet.dateFontColor = Color.black; //日期文字色
- Pallet.weekendFontColor = Color.red; //周末文字色
-
-
- //控制条配色------------------//
- Pallet.configLineColor = Color.pink; //控制条底色
- Pallet.cfgTextColor = Color.white; //控制条标签文字色
-
- Pallet.rbFontColor = Color.white; //RoundBox文字色
- Pallet.rbBorderColor = Color.red; //RoundBox边框色
- Pallet.rbButtonColor = Color.pink; //RoundBox按钮色
- Pallet.rbBtFontColor = Color.red; //RoundBox按钮文字色
- }
- */
-
-
-
-
-
- //------构造方法-------------------------------------------------//
- public Test() {
-
- makeFace(); //界面制作
- addListener(); //添加事件监听
-
- show(); //界面显示
- }
-
-
-
-
- //------方法/函数------------------------------------------------//
-
-
- public void makeFace() {
-
- setTitle("Test DateChooser");
-
- setLocation(100, 100);
- setSize(300, 200);
-
- getContentPane().setLayout(new FlowLayout());
-
- getContentPane().add(showField);
- getContentPane().add(testButton);
- }
-
-
- public void addListener() {
-
- testButton.addMouseListener(new MouseAdapter() {
- public void mousePressed(MouseEvent e) {
-
- //设置显示显示位置相对与一个界面组件
- dateChooser.showChooser(testButton,
- e.getX() - DateChooser.width, e.getY());
-
- /**
- * 设置固定的显示位置
- **
-
- dateChooser.showChooser(null, 300, 300);
-
- */
-
-
- //取得选择的日期
- Date theDay = dateChooser.getDate();
-
- /**
- * showChooser()方法也返回 Date 日期
- **
-
- Date theDay = dateChooser.showChooser(null, 300, 300);
-
- */
-
-
-
- //输出至文本框显示
- if(theDay != null)
- showField.setText(new SimpleDateFormat("[ yyyy年M月d日]")
- .format(theDay));
- }
- });
-
-
-
- this.addWindowListener(new WindowAdapter(){ //添加窗口关闭事件
- public void windowClosing(WindowEvent e){
-
- setVisible(false);
- dispose();
-
- System.exit(0);
- }
- });
- }
-
-
-
- //------程序入口-------------------------------------------------//
-
-
- public static void main(String[] args) {
-
- //启动测试------------//
- new Test();
- }
- }
|
|