1
我在想如何在使用子窗口的父窗口中更改某些内容。所以,假设我有一个窗口,按下按钮后会打开一个弹出窗口。该新窗口包含一个JTextArea和另一个名为Ok的按钮。如何在Ok按钮被按下时根据JTextArea内部的内容更改父窗口的标题?从Java中的子窗口更改父窗口中的某些内容
我在想如何在使用子窗口的父窗口中更改某些内容。所以,假设我有一个窗口,按下按钮后会打开一个弹出窗口。该新窗口包含一个JTextArea和另一个名为Ok的按钮。如何在Ok按钮被按下时根据JTextArea内部的内容更改父窗口的标题?从Java中的子窗口更改父窗口中的某些内容
我看到它的方式,常见的有两种方法可以做到这一点:
PropertyChangeListener
,并在适当的事件是由这个监听器触发,父窗口将查询对话窗口的信息。这将是一个使用Observer设计模式的示例。我更喜欢拉技术,因为,因为它是父那就是有代码以显示子窗口的对象,并需要从子窗口中的信息,它应该有代码来提取需要的信息以及子窗口将不需要知道或引用父窗口对象。这对我来说似乎更清洁。
编辑:请注意,对于您描述的示例,您可以通过使用JOptionPane轻松解决此问题。许多人不知道JOptionPanes可以显示非常复杂的GUI;基本上任何可以放在JPanel上的东西都可以显示在JOptionPane中(然后是一些)。您只需显示显示JTextField的JOptionPane,并在程序流返回到调用程序时,只需获取JOptionPane中显示的JTextField所保存的文本即可。没有比这更简单的了。