JComboBox | 江木町の牛舎

江木町の牛舎

~ 田舎者プログラマの日常 ~

Java というより Swing の話なんだろうな

といっても Swing のテーマを作るほどでもなかろう

そして 1.4 と 1.6 の違い

Enabled を False にしているのに何でイベントが発生するのか!
しかも初回だけ!

という感じで

まぁ、1.4 をサーポート範囲にしている関係でしょうがないんだけど
あまりにも動きが違うので困りもの

というか、まぁ、その違いを知って作れよ、という話なんだろうけれども

JComboBox の removeAllITems
setEnabled(false) で 非活性状態にしたにもかかわらずイベント発生

別においらが作ったわけじゃないけど、作っちゃいそうだ、的なバグで

コンボボックスが3個ある場合

1個めの選択内容により2個めの設定を変更

2個めの選択内容により3個めの設定を変更

よくある絞り込みかと思うんだが

2個めの設定を変更する際に setEnabled(false) とすると
1.6 の場合のみ removeAllItems でイベントが発生するため、
1.6 で開発してそのままにすると 1.4 で動かない(´・ω・`)

初回のみ発生、ってのは、Item が存在する場合のみ発生するということなんだろうか
(removeAllItems で Item がクリアされているため、その後 removeAllITems を
 再度実行したとしてもイベントが発生しない、ということ?)

結局、イベントが発生しないのでどうにもならず
1個めの変更時に3個めの設定を行わざるを得なくなった

綺麗じゃない(´・ω・`)

false 設定するのがいかんのかな

まぁ、removeAllItems しているのに setEnabled(false) にする意味もないだろうしな

明日確認してみよう