Salut à tous,
j'ai fait une JList avec des checkbox, mais je n'arrive pas à l'initialiser.
Comment lui dire de sélectionner la check box "a" par exemple?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 import javax.swing.*; import javax.swing.border.*; import java.awt.*; import java.awt.event.*; public class JListAvecCheckbox extends JList { protected static Border noFocusBorder = new EmptyBorder(1, 1, 1, 1); public JListAvecCheckbox() { setCellRenderer(new CheckBoxCellRenderer()); addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { int index = locationToIndex(e.getPoint()); if (index != -1) { JCheckBox checkbox = (JCheckBox) getModel().getElementAt(index); checkbox.setSelected(!checkbox.isSelected()); repaint(); } } }); } protected class CheckBoxCellRenderer implements ListCellRenderer { public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { // Check box renderer JCheckBox maCheckbox = (JCheckBox) value; maCheckbox.setEnabled(true); maCheckbox.setBorderPainted(true); return maCheckbox; } } public static void main(String args[]) { JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().setLayout(new BorderLayout()); JListAvecCheckbox cbList = new JListAvecCheckbox(); Object[] checkboxArray = new Object[3]; checkboxArray[0] = new JCheckBox("a"); checkboxArray[1] = new JCheckBox("z"); checkboxArray[2] = new JCheckBox("e"); cbList.setListData(checkboxArray); cbList.setSelectedValue("a", false); frame.getContentPane().add(cbList); frame.pack(); frame.setVisible(true); } }
(cbList.setSelectedValue("a", false); ne fonctionne pas)
Merci
Partager