我用 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/