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) 个答案