gpt4 book ai didi

java - 为什么在编辑 JTable 单元格时按转义键时不调用 cancelCellEditing()?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:14:33 25 4
gpt4 key购买 nike

我有一个可编辑的 JTable 并像这样设置了一个 DefaultCellEditor:

    colModel.getColumn( 1 ).setCellEditor( new DefaultCellEditor( txtEditBox ) {
// ...
@Override
public void cancelCellEditing() {
super.cancelCellEditing();
// handling the event
}
// ...
}

但是,在编辑该列中的单元格时按退出键时,虽然编辑模式结束,但不会调用此方法。任何想法为什么?难道我做错了什么?有没有办法处理这个问题(除了手动添加 KeyListener 之外)?

最佳答案

官方方式:可以注册一个CellEditorListener:AbstractCellEditor.addCellEditorListener(...)。如果取消编辑,则应调用 editingCanceled(ChangeEvent e)。 由于 SUN 错误 http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6788481 , editingCanceled 没有被调用 :(

作为解决方法,您可以为 ESCAPE 键注册您自己的操作并自行处理。但它不适用于调整大小事件。

另一种解决方案(快速而肮脏;-)):覆盖方法 JTable.removeEditor() 并在 super 调用之后插入您的代码。

关于java - 为什么在编辑 JTable 单元格时按转义键时不调用 cancelCellEditing()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4490659/

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