java使用JDatePicker仅显示月份和年份
我正在尝试使用JDatePicker显示日历。然而,我只想显示月份和年份,而不是日期
我试着在模型和JDatePickerImpl对象周围搜索,但运气不好
以下是我必须从文档中向JDatePicker展示的代码:
UtilCalendarModel model = new UtilCalendarModel();
Properties p = new Properties();
p.put("text.today", "Today");
p.put("text.month", "Month");
p.put("text.year", "Year");
JDatePanelImpl datePanel = new JDatePanelImpl(model, p);
JDatePickerImpl datePicker = new JDatePickerImpl(datePanel, new DateComponentFormatter());
提前谢谢
注:这是我的意思的图像
# 1 楼答案
在查看了JDatePicker项目中的代码之后,我认为通过制作^{} 类(可能还有其他一些类)的自定义版本,这是可能的。您想要的功能在标准类中还不是可配置的,但它可以作为一个增强来实现,并作为建议发送给JDatePicker开发人员(pull请求)
为了确定应用程序需要什么:您想使用类似于下面示例的日历吗?用户可以更改所选月份&;通过单击下一个月/上一个月按钮、从月弹出菜单中选择一个月或选择不同的年(使用年微调器)来选择年:
编辑:添加了JDatePicker类的修改版本的示例
我添加了一个修改后的代码示例和两个修改后的JDatePicker类版本。普通组件在用户单击特定日期时关闭弹出窗口,这在这种情况下是不可能的(因为日期是隐藏的)。我添加了一个小的OK按钮,可以关闭日期选择器(见上面的屏幕截图)。这显然只是概念的证明;代码确实需要更多的工作
(注意:当我试图添加这两个修改过的类时,我的答案变得很大。因此,我在GitHub上创建了JDatePicker项目,将JDatePicker版本1.3.4的定制重写为版本1.3.4.1,并添加了这两个文件的链接,而不是所有代码。)
CustomDatePanel类:CustomDatePanel.java (on GitHub)
CustomDatePicker类:CustomDatePicker.java (on GitHub)