我在多窗口環境中的以下情況中的上下文:
Main application -> JFrame 1 -> Swing Components -> Pojo 1
-> JFrame 2 -> Swing Components -> Pojo 2
-> JFrame 3 -> Swing Components -> Pojo 3
-> ...
每個JFrame中有一定的上下文信息,即G。框架ID。這些框架是從同一個應用程序中創建的。
問題
是否有某種方式(或模式),我可以從POJO類訪問Jframe的上下文信息,而不必通過部件的整個產業鏈遞過去?而不必交出電子郵件。 G。一個揮杆組件和使用e。 G。 SwingUtilities.getRoot()?
我當然不能使用靜態變量。 ThreadLocal可能有幫助,但這很棘手,你不能在e中實例化Pojo。 G。一個ActionListener。也許有人有更好的主意(除了改變框架實例的概念)?
1.爲什麼上下文存儲在視圖組件上,而不是存儲在後端/模型類的某處? 2.在某個時候,Pojo被添加到框架中。沒有選項可以將必要的上下文信息或指針傳遞給Pojo類嗎? – Robin
簡單示例:JFrame將當前時區存儲爲數據,每個框架都有不同的時區。每個JFrame內的面板可以根據用戶的決定而有所不同。所以常見的地方是框架,它與時區保持着一些數據結構。作爲一個非常基本的例子,我有一個日曆,其中有一個pojo,無論出於何種原因都需要時區。當然,我可以讓日曆從框架中選擇時區,然後交給它。但最終可能會出現一連串的組件和對象,因此訪問幀數據的更直接的方法會更好。 – Roland