概述
Swing控件中没有日期时间选择控件,在gitee中下载了一个别人封装的日期时间选择弹窗控件。
网址:https://gitee.com/mkk/jcalendarchooser
- Maven安装到本地仓库:
# 注意:windows下需在CMD窗口执行命令
mvn install:install-file -Dfile=C:/Users/gzw/Desktop/calendar.jar -DgroupId=com.zkfr -DartifactId=swing-calendar -Dversion=1.0 -Dpackaging=jar -DgeneratePom=true
Pom
<dependency>
<groupId>com.zkfr</groupId>
<artifactId>swing-calendar</artifactId>
<version>1.0</version>
</dependency>
实际使用
原理:时间显示用 JTextField,然后JTextField绑定鼠标点击事件,弹出日期时间选择控件窗口,关闭该窗口后,返回Calendar类对象,然后将Calendar的日期时间以字符串方式赋值给JTextField即可。
部分代码如下:
# 1. 定义JTextField
m_txtDtBegin = new JTextField(DateTime.now().withMinuteOfHour(0).toString(DT_FORMAT_MIN) );
m_txtDtBegin.setBorder( new EmptyBorder( 0, 5, 0, 0 ) );
m_txtDtBegin.setPreferredSize( new Dimension( 120, height ));
m_txtDtBegin.setEnabled( false );
# 2. 绑定鼠标点击事件
m_txtDtBegin.addMouseListener(new MouseAdapter()
{
@Override
public void mouseClicked(MouseEvent e)
{
super.mouseClicked(e);
onTxtBeginTimeClicked();
}
});
# 3. 使用日期时间控件弹窗设置时间
private void onTxtBeginTimeClicked()
{
JTimeChooser timeChooser = new JTimeChooser(this);
Calendar calendar = timeChooser.showTimeDialog();
m_txtDtBegin.setText( new DateTime(calendar.getTime()).toString(DT_FORMAT_MIN) );
}
时间显示用