此日历控件在 www.eltima.com 上给的Swing library4.0的jar包里提出出来 并重新封装在DatePicker类中 将必要的函数由私有状态提升为公开状态或将混淆过的代码重新命名.

下载地址: https://download.csdn.net/download/a276202460/1023826

源码地址: https://download.csdn.net/download/a276202460/12610630

源于同一demo的 sidebar的一个提取见另一篇博文:

http://blog.csdn.net/a276202460/archive/2009/07/04/4321837.aspx

DatePicker类继承自JComponent所以在实例化后可添加到任何容器中(JPanel,JFrame,JDialog等)

使用方法:

   DatePicker datepick = new DatePicker(Component c,new Date());//c为此组件所许要放置的父容器  d 初始化指定日期
      //  DatePicker datepick = new DatePicker(Component c);//无初始化日期
       datepick.setLocale(Locale.US);//设置显示语言
       datepick.setPattern("MM/dd/yyyy");//设置日期格式化字符串
       datepick.setEditorable(false);//设置是否可编辑
       datepick.setBackground(Color.gray);//设置背景色
       datepick.setForeground(Color.yellow);//设置前景色
       datepick.setPreferredSize(new Dimension(100,21));//设置大小
   datepick.setTextAlign(DatePicker.CENTER);//设置文本水平方向位置:DatePicker.CENTER 水平居中,DatePicker.LEFT 水平靠左   DatePicker.RIGHT 水平靠右

使用 datepick.getText() 获得文本域的值

修改了这个控件的一些 bug.

1. setLocale 方法建议不要使用,在当前日期为null的情况下 日历不会默认为当天

2. 默认格式化格式为: "MM/dd/yyyy"

3. 默认环境为 Locale. US

4. 无日期初始化的时候日历默认为当前

5. 公开 timepanel 控制函数

datepick1.setTimePanleVisible( true );

6 .去除在文本框中直接编辑时自动弹出日期选择窗口,在允许手动编辑改文本框的情况下,错误处理如下

错误对话框是否显示控制:

setShowerrormsg(Boolean flag)

错误消息设置:

setErrormsg(String errormsg) ;默认为:"InValid Date!/nPattern:(" + pattern + ")";

public void setCalendarVisible(boolean flag)// 设置日期选择面板显示或隐藏

public void setDisableddays(int[] days)// 设置不可选择日历数组

datepick1.setDisableddays( new int []{1,2,3,4,5,5} );// 设置每个月的1,2,3,4,5,6号日期不可选

public void setHightlightdays(int[] days, Color color)// 根据指定的颜色高亮显示指定的日期

datepick1.setHightlightdays( new int []{1,2,3,4,5,5} , Color. red );

可以使用 addFocusLostListener(FocusLostListener f) 添加焦点失去监听

addfocusInListener(FocusGainedListener f) 添加焦点获取监听

simple example:

import java.awt.Container;
import java.awt.FlowLayout;
import javax.swing.JFrame;
import com.eltima.components.ui.DatePicker;
public class DatepcikTest extends JFrame {
    public DatepcikTest() {
        super("test");
        setSize(300, 300);
        Container c = this.getContentPane();
        c.setLayout(new FlowLayout());
        DatePicker dp = new DatePicker(this);
        c.add(dp);
        DatePicker dp1 = new DatePicker(this);
        dp1.setEditorable(false);
        c.add(dp1);
        DatePicker dp2 = new DatePicker(this);
        dp2.setPattern("MM/dd/yyyy HH:mm:ss");
        dp2.setTimePanleVisible(true);
        c.add(dp2);
        DatePicker dp3 = new DatePicker(this);
        dp3.setTextAlign(DatePicker.RIGHT);
        c.add(dp3);
    public static void main(String[] s) {
        new DatepcikTest().setVisible(true);
 本文显示了一个使用JavaFX 8 DatePicker控件Java SE 8 Swing应用程序的示例。 
 DatePicker控件允许用户以文本形式输入日期或从日历弹出窗口中选择日期。 本示例使用其中带有FX控件Swing JFrame 。 为了将FX内容嵌入Swing应用程序中, javafx.embed.swing包提供了JFXPanel类。 
 该应用程序从日期选择...
				
JDatePicker: Java Swing 日期选择器使用教程 项目地址:https://gitcode.com/gh_mirrors/jd/JDatePicker 1. 项目介绍 JDatePicker 是一个用于 Java Swing 应用程序的高级日期选择器控件。它提供了 JDatePicker 和 JDatePanel 组件,支持 MVC 设计模式,可以与 Joda-Time、java...