I am trying to make a JList of JCheckBoxes. Here is the code
It comiles and runs, and I can see the Checkboxes with the correct text, however, I can't click on the check boxes. When I click the checks, they don't get checked. Any ideas?
1. Create an Object to retain the checkbox's state, generate accessors, override toString(), etc public ListCheckBox(Object newObject) { aObject = newObject; isSelected = false; } then add this object to your data model DefaultListModel aModel = new DefaultListMode(); aModel.addElement(new ListCheckBox(newElement)); . . theList.setModel(aModel);
2. In your list cell renderer's getListCellRendererComponent, change the state of the checkbox:
this.setSelected(((ListCheckBox) value).isSelected()); 3. Add a mouselistener to your list and upon mouseClicked: public void doCheck() { ListCheckBox item = (ListCheckBox) getSelectedValue(); item.setSelected(!item.isSelected()); repaint(); } This is should start you in the right direction but you'll probably have to do a lot of tweeking to get it to behave the way you want.