【发布时间】:2011-08-01 18:47:44
【问题描述】:
我有一个表格列,我将覆盖 DefaultCellRenderer 以显示图标。
有没有一种方法可以检测 JTable 单元格上的双击,因此我可以切换相应行值的状态,以便它在两个值之间更改图标(代表“关闭”和“打开”)?
【问题讨论】:
标签: swing jtable double-click
我有一个表格列,我将覆盖 DefaultCellRenderer 以显示图标。
有没有一种方法可以检测 JTable 单元格上的双击,因此我可以切换相应行值的状态,以便它在两个值之间更改图标(代表“关闭”和“打开”)?
【问题讨论】:
标签: swing jtable double-click
有两种方法:
1) 更简单的方法:给表格附加鼠标监听器,监听双击,通过rowAtPoint/columAtPoint找到行列,改变值,在表格模型中调用fireCellChanged()。
2) 更难(但稍微好一点)的方法:拥有一个自定义单元格编辑器,在编辑时更改值并调用 stopCellEditing()。
你不需要两者都做。
也检查一下,它的作用类似,但有一个按钮: http://tips4java.wordpress.com/2009/07/12/table-button-column/
【讨论】:
当您执行一次单击时,呈现的单元格将被单元格编辑器替换,因此请提供与呈现的外观相同的单元格编辑器,添加鼠标侦听器并捕获双击并执行任何所需的操作。当你完成调用stopCellEditing()。
【讨论】: