鼠标单击JTable上的事件

时间:2017-03-26 14:33:22

标签: java-8 java-7

我想在用户双击一行时获取所选行的索引。

这是我的代码:

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

1 个答案:

答案 0 :(得分:0)

您想知道您的鼠标指向哪一行,但您想知道选择了哪一行。所以简单的解决方案是,而不是

int selectedRow = tab.getSelectedRow();

你可以使用

int row = tab.rowAtPoint(e.getPoint());

获得想要的行。 Event e包含您需要的所有必要信息。 e.getPoint()会返回光标当前所在的确切PointrowAtPoint()应该是自我解释。

这也确保您一次只能使用一个行,如果这对您很重要的话。如果选择多行,我不知道getSelectedRow()的工作原理。