Я создал программу на Java, которая имеет два окна (JFrames):
a) Окно входа в систему,
б) Главное окно.
"Окно входа в систему" вызывает "Главное окно", а затем закрывается.
Как я могу запустить некоторый код, когда загружается "Главное окно" (запускать некоторый код только один раз, когда кадр "Главное окно" открывается в первый раз)?
Я пробую код ниже в 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
}