Java Swing How to - Right click to clear selection on JList








Question

We would like to know how to right click to clear selection on JList.

Answer

import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
//ww  w  .  j a v a 2  s . c om
import javax.swing.DefaultListModel;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.SwingUtilities;

public class Main {
  public static void main(String[] arg) {
    DefaultListModel<String>  listModel = new DefaultListModel<String>();
    for (int i = 0; i < 10; i++) {
      listModel.addElement("Item " + (i + 1));
    }

    JList<String>   list = new JList<String>(listModel);
    list.addMouseListener(new MouseAdapter() {
      @Override
      public void mouseClicked(MouseEvent me) {
        if (SwingUtilities.isRightMouseButton(me)) {
          list.clearSelection();
        }
      }
    });

    JScrollPane listScrollPane = new JScrollPane(list);
    JFrame f = new JFrame();
    f.getContentPane().add(listScrollPane);

    f.setSize(500, 400);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}