• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 529
  • Last Modified:

Disabled JCheckBox in JList

Hi, I am using a JList that contain JCheckBox, i use the follow ListRender to add the checkbox into JList. In my code, sometimes i need to disabled the JList, but the problem is the JList has been disabled but the JCheckBox still can be checked.

//list renderer
class CheckListRenderer extends JCheckBox implements ListCellRenderer {
   
          public CheckListRenderer() {
               setBackground(UIManager.getColor("List.textBackground"));
               setForeground(UIManager.getColor("List.textForeground"));
          }

          public Component getListCellRendererComponent(JList list, Object value,
               int index, boolean isSelected, boolean hasFocus) {
               setEnabled(list.isEnabled());
               setSelected(((CheckableItem)value).isSelected());
               setFont(list.getFont());
               setText(value.toString());
               return this;
          }
     }
0
chencc77
Asked:
chencc77
  • 3
  • 2
1 Solution
 
objectsCommented:
Your renderer just handles painting the list.
You must have some code elsewhere that toggles the CheckableItem value, it is that code that you need to disable.
0
 
chencc77Author Commented:
Hi objects, this is the CheckableItem class, what should i edit. thanks.

class CheckableItem {
          private String  str;
          private boolean isSelected;
   
          public CheckableItem(String str) {
               this.str = str;
               isSelected = false;
          }
   
          public void setSelected(boolean b) {
               isSelected = b;
          }
   
          public boolean isSelected() {
               return isSelected;
          }
   
          public String toString() {
               return str;
          }
     }
0
 
objectsCommented:
You should not call setSelected if the list is disabled.
0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
chencc77Author Commented:
hi, i am not clear with ur comment that how to not call setSelected.
0
 
objectsCommented:
Somewhere in your code you must call setSelected as a result of a checkbox being selected in the list.
If the list is disabled then you should not be doing this.
0
 
girionisCommented:
No comment has been added lately, so it's time to clean up this TA.

I will leave a recommendation in the Cleanup topic area that this question is:

- points to objects

Please leave any comments here within the
next seven days.

PLEASE DO NOT ACCEPT THIS COMMENT AS AN ANSWER !

girionis
Cleanup Volunteer
0

Featured Post

Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now