我想在用户双击一行时获取所选行的索引。
这是我的代码:
tab.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2) {
int selectedRow = tab.getSelectedRow();
try {
String file = rows[selectedRow][2];
String path = "C:\\Users\\raj kumar\\Gallery\\" + file;
JLabel fileLable = new JLabel();
fileLable.setBounds(500, 600, 300, 300);
fileLable.setIcon(new ImageIcon(path));
pan.add(fileLable);
} catch (Exception e1) {
e1.printStackTrace();
}
}
}
});
但即使我双击表格中的行,tab.getSelectedRow()
也会返回-1
。
答案 0 :(得分:0)
您想知道您的鼠标指向哪一行,但您想知道选择了哪一行。所以简单的解决方案是,而不是
int selectedRow = tab.getSelectedRow();
你可以使用
int row = tab.rowAtPoint(e.getPoint());
获得想要的行。 Event e
包含您需要的所有必要信息。 e.getPoint()
会返回光标当前所在的确切Point
。 rowAtPoint()
应该是自我解释。
这也确保您一次只能使用一个行,如果这对您很重要的话。如果选择多行,我不知道getSelectedRow()
的工作原理。