ホームページ >Java >&#&チュートリアル >PaneWithList の選択された行で更新するように JTextPane を接続する方法は?

PaneWithList の選択された行で更新するように JTextPane を接続する方法は?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-30 02:20:10733ブラウズ

How to Wire a JTextPane to Update with PaneWithList's Selected Row?

あるペインを別のペインに接続する方法: 出力を paneWithList に接続する

PaneWithList で選択した行の出力を出力の JTextPane に接続するには、オブザーバーの使用を検討してください。パターン。この設計パターンには、プロパティが変更されたときにそのオブザーバー (出力など) に通知する監視可能なクラス (PaneWithList など) の作成が含まれます。

オブザーバー パターンの実装

1. PropertyChangeListener を PaneWithList に追加します:

class PaneWithList extends JPanel {
    ...
    private PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(this);
    ...

    // Notify observers when the selected row changes
    protected void fireSelectedRowChanged(int oldValue, int newValue) {
        propertyChangeSupport.firePropertyChange("SELECTED_ROW", oldValue, newValue);
    }

    // Add a property change listener
    public void addPropertyChangeListener(PropertyChangeListener listener) {
        propertyChangeSupport.addPropertyChangeListener(listener);
    }
}

2.オブザーバー クラスを作成します。 出力:

class Output extends JTextPane implements PropertyChangeListener {
    ...
    
    // Handle property change events from `PaneWithList`
    @Override
    public void propertyChange(PropertyChangeEvent e) {
        if (e.getPropertyName().equals("SELECTED_ROW")) {
            int row = (int) e.getNewValue();
            String selectedItem = paneWithList.getSelectedValue(); // Get the selected item from `PaneWithList`
            append(selectedItem + "\n"); // Display the selected item in the text pane
        }
    }
}

3.オブザーバー関係を確立します。
Main クラスで、オブザーバーを PaneWithList に追加し、それを Output オブジェクトに接続します。

import java.beans.PropertyChangeListener;

public class Main {
    ...
    
    public static void main(String[] args) {
        ...
        
        paneWithList.addPropertyChangeListener(new Output()); // Connect to `Output`
        ...
    }
}

これで、PaneWithList で選択された行が変更されると、Output は次のようになります。通知され、それに応じてテキストが更新されます。

以上がPaneWithList の選択された行で更新するように JTextPane を接続する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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