ste*_*ita 21 java swing jtable mouseevent actionlistener
我有一个JTable JLabel[][]作为数据.现在我想检测双击JLabel或表格单元格(但只在其中一列中).如何在JLabel表格单元格上添加Action/MouseListener?
Vin*_*jip 61
怎么样:
table.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2) {
JTable target = (JTable)e.getSource();
int row = target.getSelectedRow();
int column = target.getSelectedColumn();
// do some action if appropriate column
}
}
});
Run Code Online (Sandbox Code Playgroud)
cam*_*ckr 27
基本上与已经接受的建议相同,除了:
a)你应该处理mousePressed,而不是mouseClicked.仅当在同一像素位置生成mousePressed和mouseReleased事件时,才会触发mouseClicked事件.如果用户将鼠标移动1个像素,而双击则无法获得预期的双击.
b)另外,您可能需要考虑使用columnAtPoint()和rowAtPoint()方法来获取单击的单元格.虽然在这种情况下可能没有什么区别,但是如果您尝试使用MouseListener进行鼠标右键单击会很重要,因为选择不会更改.因此,如果你养成使用这种方法的习惯,将来就不会有问题.
| 归档时间: |
|
| 查看次数: |
50049 次 |
| 最近记录: |