TITLE:JListの任意のItemを選択不可にする

JListの任意のItemを選択不可にする

編集者:Terai Atsuhiro
作成日:2005-05-30
更新日:2023-03-09 (木) 18:58:30

概要

JListの任意のItemを選択不可にするようなレンダラーを設定します。

#screenshot

サンプルコード

 class MyCellRenderer1 extends DefaultListCellRenderer {
   public Component getListCellRendererComponent(JList list,
                                                 Object value,
                                                 int index,
                                                 boolean isSelected,
                                                 boolean cellHasFocus) {
     if(index==1) {
       Component c = super.getListCellRendererComponent(list,value,index,
                                                        false,false);
       c.setEnabled(false);
       return c ;
     }else{
       return super.getListCellRendererComponent(list,value,index,
                                                 isSelected,cellHasFocus) ;
     }
   }
 }
 class MyCellRenderer2 extends DefaultListCellRenderer {
   public Component getListCellRendererComponent(JList list,
                                                 Object value,
                                                 int index,
                                                 boolean isSelected,
                                                 boolean cellHasFocus) {
     if(index<3 || index>7 || index==5) {
       Component c = super.getListCellRendererComponent(list,value,index,
                                                        false,false);
       c.setEnabled(false);
       return c ;
     }else{
       return super.getListCellRendererComponent(list,
                                                 value,
                                                 index,
                                                 isSelected,
                                                 cellHasFocus) ;
     }
   }
 }
  • &jnlp;
  • &jar;
  • &zip;

解説

上記のサンプルでは、レンダラーを切り替えることでItemの選択可、不可の状態を切り替えています。

コメント