JList 元素上的双击事件

新手上路,请多包涵

我有一个 JList 和一个 DefaultListModel

我如何使 JList 中的项目对双击事件做出反应?

原文由 Lobo 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答
String[] items = {"A", "B", "C", "D"};
JList list = new JList(items);

list.addMouseListener(new MouseAdapter() {
    public void mouseClicked(MouseEvent evt) {
        JList list = (JList)evt.getSource();
        if (evt.getClickCount() == 2) {

            // Double-click detected
            int index = list.locationToIndex(evt.getPoint());
        } else if (evt.getClickCount() == 3) {

            // Triple-click detected
            int index = list.locationToIndex(evt.getPoint());
        }
    }
});

原文由 Mohamed Saligh 发布,翻译遵循 CC BY-SA 3.0 许可协议

(基于 Mohamed Saligh,已接受的回复)

如果您使用的是 NetBeans

选择 JList > 事件窗口 > mouseClicked

 private void jListNicknamesMouseClicked(java.awt.event.MouseEvent evt) {
    JList list = (JList)evt.getSource();
    if (evt.getClickCount() == 2) {
        int index = list.locationToIndex(evt.getPoint());
        System.out.println("index: "+index);
    }
}

原文由 SandroMarques 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题