連接資料流的窗格元件
在提供的Main 類別中,PaneWithList 元件包含一個JList,它透過輸出來回應選定的行更改將選擇發送到控制台。要將輸出重新導向到輸出標籤中的 JTextPane,我們可以使用觀察者模式。
觀察者模式和 PropertyChangeListener
觀察者模式允許一個物件(觀察者)對另一個物件(可觀察物件)的變化做出反應。在這種情況下,ObserverPanel 充當觀察者,監視 ObservablePanel (PaneWithList) 的屬性變更。
PropertyChangeSupport
為了啟用屬性變更事件,ObservablePanel 使用 Java 的PropertyChangeSupport 類別。此類別允許註冊的偵聽器在指定屬性的值發生變更時接收通知。
在提供的程式碼範例中,ObserverPanel 將自身註冊為 ObservablePanel 的 PropertyChangeListener。具體來說,它監聽 PHYSICIST 屬性的變化,該屬性代表 ObservablePanel 組合框中的選定項目。
屬性更新
當選擇變更時在 ObservablePanel 中,組合方塊會觸發 ActionEvent,從而觸發 ObserverPanel 中的屬性變更偵聽器。然後,此偵聽器使用新選擇的值更新 ObserverPanel 中的標籤。
實作概述
ObserverPanel 顯示一個原本顯示「null」的標籤。當在 ObservablePanel 中進行選擇時,偵聽器會收到屬性變更通知,並使用所選項目的值更新標籤。
這種方法有效地將輸出從 ObservablePanel 重定向到 ObserverPanel,使您能夠在輸出標籤的 JTextPane 中顯示所選行。
以上是觀察者模式如何重新導向Java Swing元件之間的資料流?的詳細內容。更多資訊請關注PHP中文網其他相關文章!