量産メモ帳

忘れっぽいのでメモを残しています。浅く適当に書きます。

JComboBox に独自の ListCellRenderer を設定すると、プログラム内で項目を選択するコードを記述しても項目が選択できないのか?

スポンサーリンク

とりあえず JComboBox の ListCellRenderer を利用しているクラスをピックアップ。

  • com.sun.java.swing.plaf.motif.MotifComboBoxUI
  • com.sun.java.swing.plaf.windows.WindowsComboBoxUI
  • javax.swing.plaf.basic.BasicComboBoxUI
  • javax.swing.plaf.basic.BasicComboPopup
  • javax.swing.plaf.metal.MetalComboBoxButton
  • javax.swing.plaf.synth.SynthComboBoxUI
  • javax.swing.plaf.synth.SynthComboPopup
  • javax.swing.JComboBox

このうち ListCellRenderer#getListCellRendererComponent メソッドを呼び出している箇所ではどれも index に -1 を渡していた。
これが原因か?


結局、当たり前なのかもしれないが、レンダラは関係なかった。自前でモデルの要素を入れ直してる箇所が原因でした。。。