我在Java中创建了一个有两个窗口(JFrames)的程序:
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);
答案 0 :(得分:3)
这是构造函数的目的。由于您已经创建了一个新类Main_Window,因此您应该在创建主窗口期间包含要运行的代码。虽然您当前没有Main_Window类的定义,但它会是这样的。
public class Main_Window extends ?Frame implements ? {
// members
// constructor
Main_Window(){
//do some stuff here
}
// methods
}