1

コンボボックスで選択したアイテムが変更されるたびにアクションを実行しようとしています。アクション リスナーが通知されない特定のシナリオの 1 つは、コンボボックスでモデルをリセットする場合です。別のものをサブスクライブしてPropertyChangedListener、モデルが変更されたときにリッスンし、選択したアイテムを抽出できますが、モデルが変更されたときに選択されたアイテムの変更イベントが発生しない理由がわかりません。選択したアイテムのコボックスをクエリしても、視覚的に選択が変更されますnull.2つの別々のリスナーを使用するのではなく、これに対する明確な解決策はありますか?

4

1 に答える 1

2

モデルがリセットされたときにアクションリスナーとアイテムリスナーがイベントを発生させない場合は、JComboBoxをサブクラス化することで、これらのイベントを自分で発生させることができます。

public class MyComboBox extends JComboBox 
{
    @Override
    public void setModel(ComboBoxModel aModel) {
        super.setModel(aModel);
        fireActionEvent();
    }
}

しかし、私見ではバグです。公式のBugzillaに報告する必要があります。

于 2012-12-04T16:29:26.530 に答える