TITLE:JListを選択不可にする

Posted by terai at 2005-03-14

JListを選択不可にする

JListを選択出来ないように設定します。

  • &jnlp;
  • &jar;
  • &zip;

#screenshot

サンプルコード

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

解説

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

参考リンク

コメント