java - 如何停止方法启动直到 JFrame 关闭

标签 java swing jframe joptionpane

我同时使用 JFrame 和 JOption Pane ,我的主要方法的开头如下所示:

public static void main(String[] args) {
   welcomeScreen();
   int input = getInput();

其中welcomeScreen调用扩展JFrame的对象,而getInput使用JOptionPane,如下所示:

String s = "blah blah"
String data = JOptionPane.showInputDialog(s);
return data;

当您运行程序时,JOption Pane 和JFrame同时打开,但我只希望在主方法中首先调用的JFrame打开,并且我希望在通过JButton实现关闭JFrame后打开JOptionPane Action 监听器:

public class close implements ActionListener {

    public void actionPerformed(ActionEvent aL) {
      System.exit(0);
    }
  }

我该怎么做?

最佳答案

您可以向框架添加一个 WindowListener,这样当它检测到关闭框架的操作时,它将运行您在重写的 windowClosing() 方法中实现的代码。你可以这样做:

frame.addWindowListener(new WindowAdapter() {
    @Override
    public void windowClosing(WindowEvent e) {
        frame.dispose();
        JOptionPane.showInputDialog("your message");
    }
});

关于java - 如何停止方法启动直到 JFrame 关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36122330/

相关文章:

java - 使用 JAVA 从 HTML 网页中的 META 标记检索关键字

java - 为什么我在 JDT API 中没有使用 getAllSuperclasses() 获得父类(super class)?

java - 听众及其对象

Java - PaintComponent 不会在 JPanel 上显示绘图

java - 滚动RecyclerView时Cardview的数据发生变化

java - 绑定(bind)嵌套类生成一个名为 'Type' 的新嵌套类,如何防止这种情况

java - JTable 中的居中文本

java - 惰性初始化 ="true"。它有什么作用?为什么我无法从 Swing 应用程序获取 Spring bean,而无需将lazy-init 设置为 true?

java - JPanel 不更新,无论我尝试什么

Java Swing 窗口太高