java - 如何在java中加载窗口(jframe)时运行一些代码?

标签 java swing jframe

我用 Java 编写了一个程序,有两个窗口(JFrame):

a) 登录窗口,

b) 主窗口。

“登录窗口”调用“主窗口”,然后关闭。

如何在加载“主窗口”时运行某些代码(仅在“主窗口”框架首次打开时运行某些代码一次)?

我在“主窗口”的 main() 方法中尝试了以下代码,但它不起作用......

Main-Window.java 文件中的代码:

public static void main(String[] args) {

  EventQueue.invokeLater(new Runnable() {
    public void run() {
      try {

        final Main_Window frame = new Main_Window();            
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);

        frame.addWindowListener(new WindowAdapter() {
          public void windowOpened(WindowEvent e) {
            runSomeCode();
          }
        });

      } catch (Exception e) {
        e.printStackTrace();
      }

    }

  });

}

runSomeCode(); 永远不会执行...

“登录窗口”关闭并调用“主窗口”的方式是这样的:

Log-in-Window.java 文件中的代码:

Main_Window mw = new Main_Window();
mw.setLocationRelativeTo(null);
mw.setVisible(true);

WindowEvent winCloseEvent = new WindowEvent(this,WindowEvent.WINDOW_CLOSING);
Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(winCloseEvent);

最佳答案

这就是构造函数的目的。由于您已经创建了一个新类 Main_Window,因此您应该在其中包含要在创建主窗口期间运行的代码。虽然您当前对 Main_Window 类的定义不存在,但它会是这样的。

public class Main_Window extends ?Frame implements ? {
    // members

    // constructor
    Main_Window(){
        //do some stuff here
    }

    // methods
}

关于java - 如何在java中加载窗口(jframe)时运行一些代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27175687/

相关文章:

java - 关于 hibernate 缓存

java - 在JPanel上绘制,然后保存到文件,但保存的文件全是白色

java - 使用 AbstractTableModel 更改特定单元格的单元格编辑器

java - 关闭框架java后重新启用按钮

java - 将 JLabel 定位在角落

java - 类型不接受泛型中的参数

java - Struts Action 被调用两次

JBoss 上的 Javascript 源文件有错误的内容类型/mime 类型?

java - 使用 JRadioButton 进行 Tab 排序

java - Swing 中的事件处理(通过 JFrame 覆盖它)