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 サイトの他の関連記事を参照してください。