- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试使用 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());
提前致谢!
注意:这是我的意思的图像。
最佳答案
查看 JDatePicker 中的代码后项目,我认为这可以通过制作 JDatePanelImpl
的自定义版本来实现类(也许还有其他一些类)。您想要的功能在标准类中尚不可配置,但它可以作为增强功能实现并作为提案(拉取请求)发送给 JDatePicker 开发人员。
只是为了确定您的应用程序需要什么:您想使用类似于下面示例的日历吗?用户可以通过单击下一个/上一个月份按钮、从月份弹出菜单中选择一个月份或选择不同的年份(使用年份微调器)来更改所选的月份和年份:
编辑:添加了 JDatePicker 类改编版本的示例
我已经添加了您的代码的修改示例和 JDatePicker 类的两个改编版本。当用户单击特定日期时,普通组件会关闭弹出窗口,这在这种情况下是不可能的(因为日期是隐藏的)。我添加了一个小的 OK 按钮,可以关闭日期选择器(请参见上面的屏幕截图)。这显然只是一个概念证明;代码确实需要更多工作。
(注意:当我尝试添加修改后的两个类时,我的答案变大了。因此我在GitHub上fork了JDatePicker项目,将JDatePicker 1.3.4版本的自定义重写到1.3.4.1版本,并添加了链接这两个文件而不是所有代码。)
// ExampleDatePickerWithoutDay class:
import java.text.*;
import javax.swing.*;
import org.jdatepicker.*;
public class ExampleDatePickerWithoutDay {
public static void main(String[] arguments) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new ExampleDatePickerWithoutDay().createAndShowGui();
}
});
}
private void createAndShowGui() {
JFrame frame = new JFrame("Stack Overflow");
frame.setBounds(100, 100, 800, 200);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
// Set two date formats and a text label.
DateFormat dateFormat = new SimpleDateFormat("MMMM yyyy");
ComponentFormatDefaults.Key formatKey;
formatKey = ComponentFormatDefaults.Key.SELECTED_DATE_FIELD;
ComponentFormatDefaults.getInstance().setFormat(formatKey, dateFormat);
formatKey = ComponentFormatDefaults.Key.TODAY_SELECTOR;
ComponentFormatDefaults.getInstance().setFormat(formatKey, dateFormat);
ComponentTextDefaults.Key textKey = ComponentTextDefaults.Key.TODAY;
ComponentTextDefaults.getInstance().setText(textKey, "Current month");
// Create the date picker.
UtilCalendarModel calendarModel = new UtilCalendarModel();
CustomDatePanel datePanel = new CustomDatePanel(calendarModel);
CustomDatePicker datePicker = new CustomDatePicker(datePanel);
panel.add(datePicker);
frame.getContentPane().add(panel);
frame.setVisible(true);
}
}
CustomDatePanel 类:CustomDatePanel.java (on GitHub)
CustomDatePicker 类:CustomDatePicker.java (on GitHub)
关于java - 使用 JDatePicker 仅显示月份和年份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34360688/
我创建了一个带有多个 JDatePicker 对象的 GUI。现在我正在尝试计算两个 JDatePicker 日期之间的差异。但我不知道如何开始。有人可以帮我吗?JDatePicker 中的日期是一个
好吧,我知道这对你们大多数人来说听起来很愚蠢,但我已经在网上寻找了几个小时。我想在我的应用程序中使用 JDatePicker,因此我下载了 JDatepicker-1.3.2 jar 并将该 jar
UtilDateModel dateModel = new UtilDateModel(); Properties p = new Properties(); p.put("text.today",
我已经使用以下代码实现了一个 JDatePicker: final UtilDateModel expiryDateModel = new UtilDateModel();
我在我的应用程序中使 JDatePicker 正常工作,但希望将日期格式化为 YYYY_MM_DD 目前日期的格式是默认的 Wed Jul 08 15:17:01 ADT 2015 从这个guide有
我正在使用 JDatePicker 的最新版本 1.3.4。应该如何实现? 我收到编译器错误:构造函数 JDatePanelImpl(UtilDateModel) 未定义。建议的修复方法是:添加参数以
我正在使用 JDatePicker 在 java swing 中生成日历。我想更改日历内部的字体大小。 我只能设法更改显示日历面板的大小,但周一、周二等显示的字体大小未能变大。 请帮我解决这个问题。
我正在尝试用日期选择器字段替换 JTextField,我已按照我能够找到的安装说明以及 SO 上的其他示例进行操作。另外,我有最新版本(v1.3.4)-https://sourceforge.net/
我正在为预订程序制作一个编辑页面,其中用户可以编辑的内容之一是特定预订的开始日期和结束日期。目前,用户可以选择预订,信息将被放入 JTextFields 中,但不会放入 JDatePickers(用于
JDatePicker 是一个用于选择日期的开源 Java GUI 组件 http://sourceforge.net/projects/jdatepicker/ 当我将二月设置为创建组件后的月份时,
使用了org.jdatepicker 在我的应用程序输入字段应该是可编辑的,所以我添加了 datePicker = new JDatePickerImpl(datePanel, new Dat
做完之后 Date date = new Date(); jDatePicker.getModel().setValue(date); 我希望我的 JDatePicker 在 UI 中显示新值。我试过
我使用了来自 this 的代码发布以将 jdatepicker 放入我的简单程序中(下面只是 jdatepicker 所需的代码)。效果很好,但我有 2 个问题: 1.如何将选择的日期获取到Strin
我正在尝试使用 JDatePicker 来显示日历。但是,我只想显示月份和年份,而不是日期。 我尝试浏览模型和 JDatePickerImpl 对象,但没有成功。 这是我必须显示 JDatePicke
当我尝试在 eclipse 项目中使用 java.util.Locale 时出现错误: $Can't find bundle for base name i18n, locale en_GB Exce
晚安,大家好,我正在尝试在我的个人项目中实现 JDatePicker 库,我是这个库的初学者,我以前没有使用过它,我一直在使用它。阅读了一些示例和教程,但我没有在我的 JFrame 中显示此组件,如果
我正在尝试在重置按钮上编写一段代码。 我想做的是: 首先我选择日期并 然后我按下重置按钮 点击重置按钮后,日期字段应变为空白。 我在网上搜索了很多,大部分例子都说使用 setDate(new Date
这可能很简单,但我找不到解决方案。 我使用下面的代码生成了两个 jDatePickers(使用 jdatepicker 1.3.4 jar)。 UtilDateModel model = ne
当鼠标位于 jdatepicker 按钮上时,我尝试更改鼠标光标,但它不起作用。 光标根本没有改变。 这是一个 Windows 应用程序,允许用户选择日期。 UtilDateModel model
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
我是一名优秀的程序员,十分优秀!