制定JList的选项为JCheckBox

制定JList的选项为JCheckBox

想要定义JList的形式的要通过实现接口ListCellRenderer来设置,使用方法如下:
首先,定义一个类实现接口ListCellRenderer的方法 

   

getListCellRendererComponent(JList list, 
                            Object value, 
                            
int  index, 
                            
boolean  isSelected, 
                            
boolean  cellHasFocus)

例子:
 1  /**
 2  * 用于处理JList的形式
 3  @author  Lonsy
 4  */
 5  public   class  CheckBoxItem  implements  ListCellRenderer 
 6 
 7       /**
 8      * 定义其形式为CheckBox
 9       */
10       private  JCheckBox jcb;
11 
12       /**
13      * 构造函数
14       */
15       public  CheckBoxItem() {
16          jcb  =   new  JCheckBox();
17      }
18 
19       /**
20      * 实现ListCellRenderer的getListCellRendererComponent接口
21       */
22       public  Component getListCellRendererComponent(JList list, Object value,  int  index,  boolean  isSelected,  boolean  cellHasFocus) {
23          jcb.setBackground(Color.white);        
24          jcb.setText(value.toString());
25          jcb.setSelected(isSelected); 
26           return  jcb;
27      }
28  }


在这里,将其选项定义为JCheckBox形式。
然后,在需要使用此形式的地方使用setCellRenderer()方法设置,如下:

1      JList jl  =   new  JList();
2      jl.setCellRenderer( new  CheckBoxItem());

这样就可以了。
当然,通过ListCellRenderer可以设置更多的JList相关属性,详细参阅Java Doc

你可能感兴趣的:(制定JList的选项为JCheckBox)