javaswingjlistdefaultlistmodel

Double-click event on JList element


I have a JList with a DefaultListModel.

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


Solution

  • 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());
            }
        }
    });