ホームページ >Java >&#&チュートリアル >PaneWithList の選択された行で更新するように JTextPane を接続する方法は?
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 サイトの他の関連記事を参照してください。