Double-click event on JList element

前端 未结 3 795
我在风中等你
我在风中等你 2020-12-07 22:14

I have a JList with a DefaultListModel.

How I can make an item in a JList react to double-click event?

相关标签:
3条回答
  • 2020-12-07 22:23

    I know you have a simple solution, but you may want to check out List Action for a more general solution that will allow you to use the mouse as well as the key board. Proper GUI design should allow the use to use either approach.

    0 讨论(0)
  • 2020-12-07 22:24
    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());
            }
        }
    });
    
    0 讨论(0)
  • 2020-12-07 22:36

    (based on Mohamed Saligh, the accepted response)

    If you are using NetBeans

    Select the JList > Events window > 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);
        }
    }
    
    0 讨论(0)
提交回复
热议问题