java - JCalendar焦点事件

标签 java jcalendar jdatechooser

我使用JCalendarJDateChooser 在表格日期列中作为 tablecelleditor。问题是,当单击的列单元格出现 JDateChooser 时,但如果它失去焦点,它不会触发焦点丢失事件。如何让它触发焦点丢失事件?执行此操作后,有什么方法可以防止单击 JCalendar 按钮后出现 JCalendar 时触发焦点丢失?

我尝试做的事情是,如果有人通过从日历中选择日期来指定日期 stopCellEditing(); 否则等到焦点丢失事件停止或 cancelCellEditing();

enter image description here

最佳答案

我在 JDateChooser 中发现了一个 propertyChanged 事件,该事件在选择日期时触发。并且 jTable1.putClientProperty("terminateEditOnFocusLost", true); 使表格在 focusLost 时终止编辑

编辑:当日历弹出窗口关闭时,如果您想更改使表格单元格失去焦点并终止编辑的年份:(

jDateChooser.addPropertyChangeListener(new PropertyChangeListener() {

    @Override
    public void propertyChange(PropertyChangeEvent evt) {
        if (evt.getPropertyName().equals("date")) {
            stopCellEditing();
        }
    }
});

编辑(已解决):而不是使用 jTable1.putClientProperty("terminateEditOnFocusLost", true); 将 ta FocusListener 添加到 JTable TableCellEditor 并在焦点丢失时取消编辑,让您有机会检查 JDateChooser 弹出窗口是否可见。但在此之前,JDateChooser 应该使用弹出 isVisible 方法进行扩展。因为弹出变量是 protected 。并且单元格编辑器组件不应该具有焦点,否则 JTable 也会失去焦点

关于java - JCalendar焦点事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7643893/

相关文章:

java - 如何将数组索引映射到特定日期?

java - 使用 JDatePicker 仅显示月份和年份

java - 在 macOS High Sierra 上使用 javapackager 找不到 icns 文件错误

java - 在 JAVA 中格式化 Date.toString() 输出

java - 使用注释处理检索匿名类中的元素

Java DatePicker 弹出日历

java - JDateChooser 显示语言

java - 将焦点设置在 JDateChooser 上

java - 如何在 Delphi 中调试从 Java 调用的 DLL?

java - 获得此输出的可能原因是什么?