JAVA Swing Datepicker(日历控件)

此日历控件在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);
    }
}

 

  • 16
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 29
    评论
要在Java中使用GridBagLayout放置DatePicker件,可以按照以下步骤进行: 1. 导入所需的包和类: ``` import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.util.Date; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import com.toedter.calendar.JDateChooser; ``` 2. 创建一个JFrame和一个JPanel,并将JPanel设置为GridBagLayout布局: ``` JFrame frame = new JFrame("Date Picker Example"); JPanel panel = new JPanel(new GridBagLayout()); ``` 3. 创建一个JLabel来显示“选择日期”文本,并使用GridBagConstraints来设置其位置: ``` JLabel label = new JLabel("选择日期:"); GridBagConstraints gbc = new GridBagConstraints(); gbc.gridx = 0; gbc.gridy = 0; gbc.anchor = GridBagConstraints.WEST; panel.add(label, gbc); ``` 4. 创建一个JDateChooser实例,并使用GridBagConstraints将其放置在JPanel中: ``` JDateChooser dateChooser = new JDateChooser(new Date()); gbc.gridx = 1; gbc.gridy = 0; gbc.fill = GridBagConstraints.HORIZONTAL; panel.add(dateChooser, gbc); ``` 5. 将JPanel添加到JFrame中,并设置JFrame的大小和可见性: ``` frame.add(panel); frame.setSize(300, 200); frame.setVisible(true); ``` 完整的代码示例: ``` import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.util.Date; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import com.toedter.calendar.JDateChooser; public class DatePickerExample { public static void main(String[] args) { JFrame frame = new JFrame("Date Picker Example"); JPanel panel = new JPanel(new GridBagLayout()); JLabel label = new JLabel("选择日期:"); GridBagConstraints gbc = new GridBagConstraints(); gbc.gridx = 0; gbc.gridy = 0; gbc.anchor = GridBagConstraints.WEST; panel.add(label, gbc); JDateChooser dateChooser = new JDateChooser(new Date()); gbc.gridx = 1; gbc.gridy = 0; gbc.fill = GridBagConstraints.HORIZONTAL; panel.add(dateChooser, gbc); frame.add(panel); frame.setSize(300, 200); frame.setVisible(true); } } ``` 这样就可以在Java中使用GridBagLayout放置DatePicker件了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 29
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值