1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
| import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.DefaultListModel;
import javax.swing.DefaultListSelectionModel;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
@SuppressWarnings("serial")
public class Fenetre extends JFrame {
public static void main(String[] args) {
Fenetre frame = new Fenetre();
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
private DefaultListModel listModel;
private DefaultListSelectionModel selectionModel;
private JList list;
public Fenetre() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.listModel = new DefaultListModel();
for (int i = 1; i < 10; i++) {
this.listModel.addElement("Élément "+i);
}
this.list = new JList(this.listModel);
this.selectionModel = new DefaultListSelectionModel();
this.list.setSelectionModel(this.selectionModel);
this.list.addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
if (e.getValueIsAdjusting()) {
if (e.getSource() == Fenetre.this.list) {
System.out.println("\r\nLa sélection change");
}
}
}
});
this.list.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION );
JButton btn = new JButton("Tout sélectionner");
btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
selectAll();
}
});
JButton btnClear = new JButton("Tout desélectionner");
btnClear.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
clearSelection();
}
});
getContentPane().setLayout(new BorderLayout());
JPanel panel = new JPanel(new FlowLayout());
panel.add(btn);
panel.add(btnClear);
getContentPane().add(panel, BorderLayout.NORTH);
getContentPane().add(this.list, BorderLayout.CENTER);
}
public void selectAll() {
this.selectionModel.setValueIsAdjusting(true);
this.selectionModel.setSelectionInterval(0, this.listModel.getSize() - 1);
}
public void clearSelection() {
this.selectionModel.clearSelection();
}
} |
Partager