Win a copy of Re-engineering Legacy Software this week in the Refactoring forum
or Docker in Action in the Agile forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

JCheckBox in a JList

 
Gregg Bolinger
GenRocket Founder
Ranch Hand
Posts: 15302
6
Chrome IntelliJ IDE Mac OS X
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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?
 
Travis Kline
Greenhorn
Posts: 14
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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.
 
Nathan Pruett
Bartender
Posts: 4121
IntelliJ IDE Java Spring
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
"TK" -

Welcome to the JavaRanch! Please adjust your displayed name to meet the
JavaRanch Naming Policy.
You can change it here.

Thanks! and welcome to the JavaRanch!
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic