首頁 >Java >java教程 >觀察者模式如何重新導向Java Swing元件之間的資料流?

觀察者模式如何重新導向Java Swing元件之間的資料流?

Patricia Arquette
Patricia Arquette原創
2024-11-29 18:22:11557瀏覽

How Can the Observer Pattern Redirect Data Flow Between Java Swing Components?

連接資料流的窗格元件

在提供的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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn