• 追加された行はこの色です。
  • 削除された行はこの色です。
TITLE:JListを選択不可にする
#navi(../)
RIGHT:Posted by [[terai]] at 2005-03-14
*JListを選択不可にする [#j04d5de5]
Posted by [[terai]] at 2005-03-14

#contents

**概要 [#o1706f9f]
JListを選択出来ないように設定します。

-&jnlp;
-&jar;
-&zip;

#screenshot

**サンプルコード [#g97b104e]
#code{{
list2.setFocusable(false);
list2.setSelectionModel(new DefaultListSelectionModel() {
  public boolean isSelectedIndex(int index) {
    return false;
  }
});

class EmptySelectionRenderer implements ListCellRenderer {
  private final ListCellRenderer renderer;
  public EmptySelectionRenderer(ListCellRenderer renderer) {
    this.renderer = renderer;
  }
  public Component getListCellRendererComponent(
                     JList list, Object value, int index, 
                     boolean isSelected, boolean cellHasFocus) {
    return renderer.getListCellRendererComponent(
                        list, value, index, false, false);
  }
}
}}

**解説 [#a0f3861e]
-左
--JList#setEnabled(false)で選択不可にしています。
-中
--JList#setFocusable(false)でフォーカス無し、かつListSelectionModel#isSelectedIndexが常にfalseなセレクションモデルを設定して、選択不可にしています。
-右
--常に各セルを選択状態でもフォーカスも無いものとして描画するセルレンダラーを設定して、選択不可のように見せかけています。

//**参考リンク
**参考リンク [#df459cec]
-[[JListの任意のItemを選択不可にする>Swing/DisabledItem]]

**コメント [#b5251fbd]
#comment