gpt4 book ai didi

java - JCalendar焦点事件

转载 作者:行者123 更新时间:2023-11-30 04:58:46 26 4
gpt4 key购买 nike

我使用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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com