我的一个类中有一个方法到我的Java应用程序,它创建一个Swing GUI并拥有它自己的动作侦听器 - 它工作正常。但是,当窗口关闭时,我需要方法返回String[]
数组;这是造成问题的部分......
我在方法的末尾添加了一个简单的return
语句,但显然Java不等待动作侦听器,并且一旦添加了动作侦听器,就认为该方法已完成。那么有没有办法“持有”一个方法,然后在我准备就绪时恢复它 - 甚至是我的问题的另一个解决方案?
先谢谢
答案 0 :(得分:4)
使用模式JDialog
或JOptionPane
代替。打开它的代码将在此时暂停 - 直到模态组件从屏幕中解除。
答案 1 :(得分:3)
使用WindowListener进行尝试,因此当您关闭窗口时,可以发送数组
例如:
public class YourClass{
...
window.addWindowListener(new NameOfListener());
...
class NameOfListener() extends WindowAdapter{
@Override
public void windowClosed(final WindowEvent e)
{
// send your array
anInstanceYouWish.setArrayXY(yourStringArray);
}
}
}
答案 2 :(得分:2)
您可以向JFrame
实例添加WindowListener
并覆盖windowClosing(WindowEvent e)
方法。在其中,您可以实现自己的行为。