如何区分由于用户单击或由于列拖动而被调用的isCellEditable()

时间:2011-01-11 05:16:46

标签: jtable abstracttablemodel

我有一个带有自定义编辑器和渲染器的JTable。我也有我的表模型。我想在用户点击特定列的单元格时实例化一个特殊的输入窗口。我已经在isCellEditable()中编写了逻辑,但现在的问题是,当我点击该特定列的任何单元格时,弹出输入窗口然后我输入我的值,直到现在每件事都运行正常。但是现在当我尝试通过拖动标题来移动列位置时,再次调用isCellEditable()并且没有任何用户单击该特定列的单元格时窗口会弹出。 请建议如何区分用户点击和列拖动。

此致 克里希纳

1 个答案:

答案 0 :(得分:0)

虽然我无法找到问题的答案,但我的目的已经解决了。我写了我在类中实例化复杂窗口的所有逻辑:CustomCellRenderer,getTableCellEditorComponent()。我的CustomCellRenderer扩展了DefaultCellEditor。我唯一的错误就是在逻辑中调用表模型的setValueAt()。后来我发现我可以选择在getTableCellEditorComponent()中自己设置组件的值。稍后返回相同的组件。