java - 如何获取Java Swing列表中未选择的右键单击项目?

Posted

技术标签:

【中文标题】java - 如何获取Java Swing列表中未选择的右键单击项目?【英文标题】:How to get a right-click item which is not selected in Java Swing's list? 【发布时间】:2015-03-10 00:28:20 【问题描述】:

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

选择了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】:

相信你想要JList#locationToIndex

来自 JavaDocs 的修改示例

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

【讨论】:

是的,完全正确!谢谢。

以上是关于java - 如何获取Java Swing列表中未选择的右键单击项目?的主要内容,如果未能解决你的问题,请参考以下文章

java swing 中的列表框JList如何在程序中动态的添加和删除元素

java swing中如何自行丢失焦点?已知怎样获取没找到如何丢失!

java - 如何在java swing中检查当前窗口大小?

java swing如何把获取的文本框值添加到Table表格中,能否给个简单的例子,急用!急用!谢谢

如何在 Java Swing 中获取工具提示文本字符串的宽度?

如何通过 Google Cloud Monitoring JAVA 客户端库获取 Pub/Sub 订阅中未确认消息的数量