【问题标题】:How to stop editing with DefaultCellEditor when a separate JBtton is pressed按下单独的 JButton 时如何停止使用 DefaultCellEditor 进行编辑
【发布时间】:2010-09-27 12:50:20
【问题描述】:

我得到了一个带有自定义 TableCellEditor(扩展 DefaultCellEditor)的表格,其中 JFormattedTextField 作为编辑器组件。

现在我遇到了问题:当我在编辑时按下一个单独的按钮。当按下按钮时,编辑器保持“打开并处于活动状态”,而我希望它停止编辑,以便所做的更改可用于按钮引起的操作。

那么如何在按下不同按钮时停止编辑。我为 JFormattedTextField 尝试了 setFocusLostBehavior(JFormattedTextField.COMMIT) 但它似乎没有效果。

希望有人有一些好主意 =)

【问题讨论】:

    标签: java swing focus jtable tablecelleditor


    【解决方案1】:

    你可以试试

    jtable.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);

    【讨论】:

    • 我不知道。恐怕它很无证。 :(
    【解决方案2】:

    感谢 asalamon74,效果很好。

    Sun Bug 数据库中关于这件事的争论:Bug 4724980: JTable: Add API to control what happens to edits when table loses focus.(还发现了其他错误条目)。 terminateEditOnFocusLost 开启“提交或取消”行为,该行为可以在 Java 源代码中的类 JTable$CellEditorRemover

    中看到

    是的,API 等中没有记录它有点奇怪......

    【讨论】:

    • 辩论的提交日期是 01-AUG-2002。所以这是一个很长的问题,而且还没有真正记录在案。
    【解决方案3】:
    猜你喜欢
    • 1970-01-01
    • 2010-10-16
    • 2016-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多