Initialiser une JList composée de checkbox
Salut à tous,
j'ai fait une JList avec des checkbox, mais je n'arrive pas à l'initialiser.
Code:
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);
}
} |
Comment lui dire de sélectionner la check box "a" par exemple?
(cbList.setSelectedValue("a", false); ne fonctionne pas)
Merci