在方法内部使用ActionListeners创建GUI

时间:2011-09-06 12:43:52

标签: java swing user-interface actionlistener windowlistener

我的一个类中有一个方法到我的Java应用程序,它创建一个Swing GUI并拥有它自己的动作侦听器 - 它工作正常。但是,当窗口关闭时,我需要方法返回String[]数组;这是造成问题的部分......

我在方法的末尾添加了一个简单的return语句,但显然Java不等待动作侦听器,并且一旦添加了动作侦听器,就认为该方法已完成。那么有没有办法“持有”一个方法,然后在我准备就绪时恢复它 - 甚至是我的问题的另一个解决方案?

先谢谢

3 个答案:

答案 0 :(得分:4)

使用模式JDialogJOptionPane代替。打开它的代码将在此时暂停 - 直到模态组件从屏幕中解除。

答案 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)方法。在其中,您可以实现自己的行为。