ホームページ  >  記事  >  Java  >  SwingPropertyChangeSupport を使用して JTextArea を動的に更新する方法

SwingPropertyChangeSupport を使用して JTextArea を動的に更新する方法

Susan Sarandon
Susan Sarandonオリジナル
2024-11-06 03:04:02807ブラウズ

How to Dynamically Update JTextArea Using SwingPropertyChangeSupport?

SwingPropertyChangeSupport を使用して JTextArea を動的に更新する

コード スニペットでは、配列を表す JTextArea が更新されないという問題に直面しています。入力ダイアログを使用して変更を行った後に更新します。これは、プロパティが変更されたことを SwingPropertyChangeSupport に正しく通知していないために発生します。

これを解決するには、ArrayForUpdating クラスを変更しましょう。

<code class="java">public class ArrayForUpdating {
    // Existing code...

    public void setArrayData(int a, int memData) {
        // Existing code...

        // Fire the property change event
        setArrayyDisplayString();
        firePropertyChange(BOUND_PROPERTY, oldValue, newValue);
    }
}</code>

setArrayData メソッドで、配列を作成し、新しい表示文字列を生成したら、firePropertyChange を使用してプロパティ変更イベントを明示的に起動します。これにより、登録されているすべてのリスナーに BOUND_PROPERTY が変更されたことが通知されます。

この方法でプロパティを更新すると、GuiForUpdate クラスに変更が通知され、それに応じて JTextArea が更新されます。

これはGuiForUpdate クラスを更新しました:

<code class="java">public class GuiForUpdate extends JFrame implements ActionListener {

    // Existing code...

    /**
     * Adds a display area for array
     */
    public void layoutDisplay() {
        // Existing code...

        arrayForUpdate.addPropertyChangeListener(new PropertyChangeListener() {

            @Override
            public void propertyChange(PropertyChangeEvent pcEvt) {
                if (pcEvt.getPropertyName().equals(
                        ArrayForUpdating.BOUND_PROPERTY)) {
                    mList = (pcEvt.getNewValue().toString());
                    displayOutput.setText(mList);
                }
            }
        });
    }
}</code>

layoutDisplay メソッドで、BOUND_PROPERTY が変更されたときに displayOutput テキスト領域を更新するようにプロパティ変更リスナーを更新しました。

これらの変更を組み込むことで、JTextArea入力ダイアログを通じて配列に加えられた変更が動的に反映されるようになりました。

以上がSwingPropertyChangeSupport を使用して JTextArea を動的に更新する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。