3

JCheckBoxコンポーネントにリスナーを追加し、リスナーを手動で呼び出したいのですが、どうすればよいですか?

myCheckBox.selected(false) 

次に、myCheckBoxリスナーを呼び出します。もっといいアイデアはありますか?

4

3 に答える 3

6

私は少し遅れていることを知っていますが、これでうまくいくはずです:

ItemListener listener = new ItemListener() {
    public void itemStateChanged(ItemEvent e) {
         //whatever your itemStateChanged() looks like.
    }
};
JCheckBox checkBox = new JCheckBox();
checkBox.addItemListener(listener);

次に、手動で呼び出す必要があるときはいつでも:

listener.itemStateChanged(
                new ItemEvent(checkBox, ItemEvent.ITEM_STATE_CHANGED, checkBox, 0));

リスナーを匿名で作成した場合でも、次のようにアクセスできます。

checkBox.getItemListeners()[0].itemStateChanged(
                new ItemEvent(checkBox, ItemEvent.ITEM_STATE_CHANGED, checkBox, 0));
于 2016-08-18T14:27:35.620 に答える
0

どの checkBox コンポーネントを使用しているかはわかりません。使用しているフレームワークを教えたり、他の役立つコンテキスト情報を提供したりしません。

しかし、一般的に: リスナーは impl です。インターフェイス。このインターフェイスは、コンポーネント (checkBox) が呼び出す callbackmethod を定義します。

リスナー obj のインスタンスがある場合。このメソッドを直接呼び出すことができます。

于 2012-07-30T09:45:19.723 に答える