有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java重写mousePressedHandler基本目录UI(JTable)

我想调整我的JTable,这样当我开始编辑一个单元格,然后选择一个单元格区域时,单元格编辑器不会消失,而是将其值更改为“当前选择”

我已经有了一个自定义的ListSelectionListener,它监听选择中的更改,并从可以转换为字符串的范围对象创建一个范围对象(例如A1:C3),但我正在寻找一种方法,以便在单元格编辑器停止/选择事件开始时挂接,因此,我可以防止默认行为,并在选择单元格时保持编辑模式。有人有主意吗

编辑: 我走得更远了一点。在removeEditor()方法中抛出错误时,我得到以下堆栈跟踪:

at GUI.STable.removeEditor(STable.java:71)
at javax.swing.JTable.editingStopped(JTable.java:4724)
at javax.swing.AbstractCellEditor.fireEditingStopped(AbstractCellEditor.java:141)
at javax.swing.DefaultCellEditor$EditorDelegate.stopCellEditing(DefaultCellEditor.java:368)
at javax.swing.DefaultCellEditor.stopCellEditing(DefaultCellEditor.java:233)
at GUI.STable$CustomTableCellEditor.stopCellEditing(STable.java:119)
at javax.swing.plaf.basic.BasicTableUI$Handler.mousePressed(BasicTableUI.java:1010)

这将导致BasicTableUI中的mousePressed事件,它确实会关闭当前编辑器:

if (table.isEditing() && !table.getCellEditor().stopCellEditing()) {
    Component editorComponent = table.getEditorComponent();
    if (editorComponent != null && !editorComponent.hasFocus()) {
        SwingUtilities2.compositeRequestFocus(editorComponent);
    }
    return;
}

但是我如何在BasicTableUI中重写这个鼠标按下的处理程序呢


共 (0) 个答案