# JDatePicker **Repository Path**: lijinjiang01/JDatePicker ## Basic Information - **Project Name**: JDatePicker - **Description**: 一款为 Java Swing 应用程序设计的日期时间选择组件 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2024-12-30 - **Last Updated**: 2025-12-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: Swing, JDatePicker ## README # JDatePicker ![Java](https://img.shields.io/badge/Java-8-blue.svg) ![IDE](https://img.shields.io/badge/IDE-IntelliJ%20IDEA-brightgreen.svg) ![Maven](https://img.shields.io/badge/Maven-3.6.3-yellow.svg) ![License](https://img.shields.io/badge/license-MIT-orange.svg) > System : Windows 10 > > Intellij IDEA : Ultimate 2022.3.3 > > Java : 1.8.0_351 > > Maven : 3.8.1 ## 1.介绍 JDatePick 是一款为 Java Swing 应用程序设计的日期时间选择组件,它提供了一种方便的方式让用户从图形界面中选择日期,而不是手动输入日期字符串,减少了用户输入错误日期格式的可能性。 该项目基于 JDK8 进行开发,以 LocalDate 和 LocalDateTime 构建日期模型,避免了使用 Date 会导致线程不安全的缺点 ## 2.方法 ### 2.1 初始化 该组件支持:年、月、日、时、分、秒、10分、15分、30分等9种选择模式,默认是选择日模式 JDatePicker picker = new JDatePicker(PickerMode.YEAR);//选择年 JDatePicker picker = new JDatePicker(PickerMode.MONTH);//选择月 JDatePicker picker = new JDatePicker();//默认选择日:PickerMode.DAY JDatePicker picker = new JDatePicker(PickerMode.HOUR);//选择时 JDatePicker picker = new JDatePicker(PickerMode.MINUTE);//选择分 JDatePicker picker = new JDatePicker(PickerMode.MINUTE_10);//选择10分 JDatePicker picker = new JDatePicker(PickerMode.MINUTE_15);//选择15分 JDatePicker picker = new JDatePicker(PickerMode.MINUTE_30);//选择30分 ### 2.2 初始值 在初始化中,可以设置组件的初始值 JDatePicker picker = new JDatePicker(PickerMode.SECOND, LocalDateTime.of(2024, 6, 6, 6, 6, 6));//默认值 ### 2.3 获取值 在选择完成后,可以使用getValue()方法,获取选择的时间字符串值 picker.getValue();//获取组件值 ## 3.使用 ### 3.1 选择年 测试代码如下 ```java import com.lijinjiang.JDatePicker; import com.lijinjiang.beautyeye.BeautyEyeLNFHelper; import com.lijinjiang.mode.PickerMode; import javax.swing.*; public class PickYearDemo { public static void main(String[] args) { try { BeautyEyeLNFHelper.frameBorderStyle = BeautyEyeLNFHelper.FrameBorderStyle.generalNoTranslucencyShadow; BeautyEyeLNFHelper.launchBeautyEyeLNF(); } catch (Exception ignored) { } JFrame frame = new JFrame(); frame.setTitle("选择年"); frame.setSize(400, 360); JDatePicker picker = new JDatePicker(PickerMode.YEAR);//选择年 frame.add(picker); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } ``` ![](https://gitee.com/lijinjiang01/images/raw/master/jdatepicker/01.gif) ### 3.2 选择月 测试代码如下 ```java import com.lijinjiang.JDatePicker; import com.lijinjiang.beautyeye.BeautyEyeLNFHelper; import com.lijinjiang.mode.PickerMode; import javax.swing.*; public class PickMonthDemo { public static void main(String[] args) { try { BeautyEyeLNFHelper.frameBorderStyle = BeautyEyeLNFHelper.FrameBorderStyle.generalNoTranslucencyShadow; BeautyEyeLNFHelper.launchBeautyEyeLNF(); } catch (Exception ignored) { } JFrame frame = new JFrame(); frame.setTitle("选择月"); frame.setSize(400, 360); JDatePicker picker = new JDatePicker(PickerMode.MONTH);//选择月 frame.add(picker); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } ``` ![](https://gitee.com/lijinjiang01/images/raw/master/jdatepicker/02.gif) ### 3.3 选择日 测试代码如下,组件默认就是选择日,所以不用设置选择模式 ```java import com.lijinjiang.JDatePicker; import com.lijinjiang.beautyeye.BeautyEyeLNFHelper; import javax.swing.*; public class PickDayDemo { public static void main(String[] args) { try { BeautyEyeLNFHelper.frameBorderStyle = BeautyEyeLNFHelper.FrameBorderStyle.generalNoTranslucencyShadow; BeautyEyeLNFHelper.launchBeautyEyeLNF(); } catch (Exception ignored) { } JFrame frame = new JFrame(); frame.setTitle("选择日"); frame.setSize(400, 360); JDatePicker picker = new JDatePicker();//默认选择日:PickerMode.DAY frame.add(picker); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } ``` ![](https://gitee.com/lijinjiang01/images/raw/master/jdatepicker/03.gif) ### 3.4 选择时 测试代码如下 ```java import com.lijinjiang.JDatePicker; import com.lijinjiang.beautyeye.BeautyEyeLNFHelper; import com.lijinjiang.mode.PickerMode; import javax.swing.*; public class PickHourDemo { public static void main(String[] args) { try { BeautyEyeLNFHelper.frameBorderStyle = BeautyEyeLNFHelper.FrameBorderStyle.generalNoTranslucencyShadow; BeautyEyeLNFHelper.launchBeautyEyeLNF(); } catch (Exception ignored) { } JFrame frame = new JFrame(); frame.setTitle("选择时"); frame.setSize(400, 360); JDatePicker picker = new JDatePicker(PickerMode.HOUR);//选择时 frame.add(picker); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } ``` ![](https://gitee.com/lijinjiang01/images/raw/master/jdatepicker/04.gif) ### 3.5 选择分 测试代码如下 ```java import com.lijinjiang.JDatePicker; import com.lijinjiang.beautyeye.BeautyEyeLNFHelper; import com.lijinjiang.mode.PickerMode; import javax.swing.*; public class PickMinuteDemo { public static void main(String[] args) { try { BeautyEyeLNFHelper.frameBorderStyle = BeautyEyeLNFHelper.FrameBorderStyle.generalNoTranslucencyShadow; BeautyEyeLNFHelper.launchBeautyEyeLNF(); } catch (Exception ignored) { } JFrame frame = new JFrame(); frame.setTitle("选择分"); frame.setSize(400, 360); JDatePicker picker = new JDatePicker(PickerMode.MINUTE);//选择分 frame.add(picker); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } ``` ![](https://gitee.com/lijinjiang01/images/raw/master/jdatepicker/05.gif) ### 3.6 选择秒 测试代码如下 ```java import com.lijinjiang.JDatePicker; import com.lijinjiang.beautyeye.BeautyEyeLNFHelper; import com.lijinjiang.mode.PickerMode; import javax.swing.*; public class PickSecondDemo { public static void main(String[] args) { try { BeautyEyeLNFHelper.frameBorderStyle = BeautyEyeLNFHelper.FrameBorderStyle.generalNoTranslucencyShadow; BeautyEyeLNFHelper.launchBeautyEyeLNF(); } catch (Exception ignored) { } JFrame frame = new JFrame(); frame.setTitle("选择秒"); frame.setSize(400, 360); JDatePicker picker = new JDatePicker(PickerMode.SECOND);//选择秒 frame.add(picker); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } ``` ![](https://gitee.com/lijinjiang01/images/raw/master/jdatepicker/06.gif) ### 3.7 选择10分 测试代码如下 ```java import com.lijinjiang.JDatePicker; import com.lijinjiang.beautyeye.BeautyEyeLNFHelper; import com.lijinjiang.mode.PickerMode; import javax.swing.*; public class Pick10MinuteDemo { public static void main(String[] args) { try { BeautyEyeLNFHelper.frameBorderStyle = BeautyEyeLNFHelper.FrameBorderStyle.generalNoTranslucencyShadow; BeautyEyeLNFHelper.launchBeautyEyeLNF(); } catch (Exception ignored) { } JFrame frame = new JFrame(); frame.setTitle("选择10分"); frame.setSize(400, 360); JDatePicker picker = new JDatePicker(PickerMode.MINUTE_10);//选择10分 frame.add(picker); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } ``` ![](https://gitee.com/lijinjiang01/images/raw/master/jdatepicker/07.gif) ### 3.8 选择15分 测试代码如下 ```java import com.lijinjiang.JDatePicker; import com.lijinjiang.beautyeye.BeautyEyeLNFHelper; import com.lijinjiang.mode.PickerMode; import javax.swing.*; public class Pick15MinuteDemo { public static void main(String[] args) { try { BeautyEyeLNFHelper.frameBorderStyle = BeautyEyeLNFHelper.FrameBorderStyle.generalNoTranslucencyShadow; BeautyEyeLNFHelper.launchBeautyEyeLNF(); } catch (Exception ignored) { } JFrame frame = new JFrame(); frame.setTitle("选择15分"); frame.setSize(400, 360); JDatePicker picker = new JDatePicker(PickerMode.MINUTE_15);//选择15分 frame.add(picker); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } ``` ![](https://gitee.com/lijinjiang01/images/raw/master/jdatepicker/08.gif) ### 3.9 选择30分 测试代码如下 ```java import com.lijinjiang.JDatePicker; import com.lijinjiang.beautyeye.BeautyEyeLNFHelper; import com.lijinjiang.mode.PickerMode; import javax.swing.*; public class Pick30MinuteDemo { public static void main(String[] args) { try { BeautyEyeLNFHelper.frameBorderStyle = BeautyEyeLNFHelper.FrameBorderStyle.generalNoTranslucencyShadow; BeautyEyeLNFHelper.launchBeautyEyeLNF(); } catch (Exception ignored) { } JFrame frame = new JFrame(); frame.setTitle("选择30分"); frame.setSize(400, 360); JDatePicker picker = new JDatePicker(PickerMode.MINUTE_30);//选择30分 frame.add(picker); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } ``` ![](https://gitee.com/lijinjiang01/images/raw/master/jdatepicker/09.gif) ### 3.10 设置默认值 测试代码如下 ```java import com.lijinjiang.JDatePicker; import com.lijinjiang.beautyeye.BeautyEyeLNFHelper; import com.lijinjiang.mode.PickerMode; import javax.swing.*; import java.time.LocalDateTime; public class PickWithDefaultDemo { public static void main(String[] args) { try { BeautyEyeLNFHelper.frameBorderStyle = BeautyEyeLNFHelper.FrameBorderStyle.generalNoTranslucencyShadow; BeautyEyeLNFHelper.launchBeautyEyeLNF(); } catch (Exception ignored) { } JFrame frame = new JFrame(); frame.setTitle("选择秒"); frame.setSize(400, 360); JDatePicker picker = new JDatePicker(PickerMode.SECOND, LocalDateTime.of(2024, 6, 6, 6, 6, 6));//默认值 frame.add(picker); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } ``` ![](https://gitee.com/lijinjiang01/images/raw/master/jdatepicker/10.gif)