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

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

概要

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

http://terai.xrea.jp/swing/disableditem/screenshot.png

サンプルコード

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) ;
    }
  }
}

解説

上記のサンプルでは、index==1のItemの場合、常に選択もフォーカスも無く、かつsetEnabled(false)となるようなレンダラーを設定しています。

コメント