2

「jComboBox18」という名前の JComboBox と「jTextArea11」という JTextArea があります。ここで、「jComboBox18」コンボ ボックスから項目が選択されるたびに、対応する説明が「jTextArea11」テキスト領域に表示されるようにします。

JComboBox に適切なリスナーを追加しましたが、JTextArea にテキストが表示されません。私が書いたコードは次のとおりです。

private void jComboBox18ItemStateChanged(java.awt.event.ItemEvent evt) {

    Object item = jComboBox18.getSelectedItem();

    if(item != null) {
        ems.logic.Process selectedProcess = (ems.logic.Process)item;

        jTextArea11.setText(selectedProcess.getProcessDescription());
        jTextArea11.updateUI();
        jTextArea11.revalidate();
        jTextArea11.validate();
    } 
}

=====================編集済み=========================== ===============

メソッドは確実に呼び出されています。このメソッドにも記述されているもう 1 つのコンボボックスの状態を変更しています。「jComboBox18」からアイテムが選択されるたびに、その状態が正常に変更されます。

4

2 に答える 2

2

私はそれがうまくいくはずだと思います。実際、必要なのは setText() 呼び出しだけです。私の推測では、何らかの理由で関数が呼び出されていないということです。コードにブレークポイントを置き、それが呼び出されることを確認してください。

于 2010-01-20T12:22:50.343 に答える
0

表示されているコードでは、メソッドの名前はjComboBox18ItemStateChanged. このメソッドが呼び出されていますか? JComboBox の ItemListenerは、サブクラスが以下のメソッドを実装する必要があることを宣言する インターフェイスItemListenerを実装する必要があります。

void itemStateChanged(ItemEvent e);

JComboBox に ItemListener のインスタンスをどのように追加していますか?

編集:
あなたの編集とコメントを読んだ後、私が考えることができる別の可能性は次のとおりです:テキストエリアが更新されたときにトリガーされるリスナーがあり、おそらく JComboBox リスナーで行われた変更を元に戻しています。

于 2010-01-20T12:23:53.993 に答える