如何获得未在Java Swing列表中选择的右键单击项?

时间:2015-03-10 00:28:21

标签: java swing mouseevent jlist

我有一个Java Swing Jlist,我知道如何在“选定项目”上处理左键单击和右键单击,但我的问题是:如果当前选择了项目1,但是当我右键单击时第3项,如何获得该项目的信息/身份?例如,在下图中,如您所见,

enter image description here

选择了Salsa_2015_03_01_1,但如果现在我右键单击Salsa_2015_03_01_3,如何在以下示例代码中获取该项目的信息:

    list.addMouseListener(new MouseAdapter()
    {
      public void mousePressed(MouseEvent e)
      {
        String File_Path=File_Map.get(list.getSelectedValue().toString()).getAbsolutePath();

        if (SwingUtilities.isLeftMouseButton(e))
        {
//          Out("Left-Click");
        }
        else if (SwingUtilities.isRightMouseButton(e))
        {
        }
       }
     });

现在MouseEvent e只包含所选项目,有没有办法检测哪一个是鼠标点击项目?我想要实现的是保存一步:左键单击第3项,然后右键单击它以执行额外的过程。但我想跳过左键单击。

1 个答案:

答案 0 :(得分:2)

我相信你想要JList#locationToIndex

来自JavaDocs的修改示例

public void mouseClicked(MouseEvent e) {
     if (SwingUtilities.isRightMouseButton(e)) {
         int index = list.locationToIndex(e.getPoint());
         System.out.println("Item " + index);
      }
 }