1
我在想如何在使用子窗口的父窗口中更改某些內容。所以,假設我有一個窗口,按下按鈕後會打開一個彈出窗口。該新窗口包含一個JTextArea和另一個名爲Ok的按鈕。如何在Ok按鈕被按下時根據JTextArea內部的內容更改父窗口的標題?從Java中的子窗口更改父窗口中的某些內容
我在想如何在使用子窗口的父窗口中更改某些內容。所以,假設我有一個窗口,按下按鈕後會打開一個彈出窗口。該新窗口包含一個JTextArea和另一個名爲Ok的按鈕。如何在Ok按鈕被按下時根據JTextArea內部的內容更改父窗口的標題?從Java中的子窗口更改父窗口中的某些內容
我看到它的方式,常見的有兩種方法可以做到這一點:
PropertyChangeListener
,並在適當的事件是由這個監聽器觸發,父窗口將查詢對話窗口的信息。這將是一個使用Observer設計模式的示例。我更喜歡拉技術,因爲,因爲它是父那就是有代碼以顯示子窗口的對象,並需要從子窗口中的信息,它應該有代碼來提取需要的信息以及子窗口將不需要知道或引用父窗口對象。這對我來說似乎更清潔。
編輯:請注意,對於您描述的示例,您可以通過使用JOptionPane輕鬆解決此問題。許多人不知道JOptionPanes可以顯示非常複雜的GUI;基本上任何可以放在JPanel上的東西都可以顯示在JOptionPane中(然後是一些)。您只需顯示顯示JTextField的JOptionPane,並在程序流返回到調用程序時,只需獲取JOptionPane中顯示的JTextField所保存的文本即可。沒有比這更簡單的了。