Я создал программу на Java, которая имеет два окна (JFrames):
a) Окно входа в систему,
б) Главное окно.
Правильный способ запуска программы - запустить сначала "Окно входа в систему", и если имя пользователя и пароль верны, то это окно перенаправляет вас в "Главное окно", делая "Лог-Окно" распоряжаться.
НО
Если кто-то запускает непосредственно "Главное окно" (игнорируя этап входа в систему), тогда это окно будет работать правильно без какой-либо аутентификации...
ТАК
Как я могу предотвратить "загрузку и запуск" главного окна, если кто-то запускает его напрямую (например, >> java Main_Window
)? Я хочу, чтобы моя программа выполнялась только с порядком (1) "Окно входа в систему", а затем (2) "Главное окно".
РЕДАКТИРОВАТЬ
Класс Main_Window
имеет только один main
метод с приведенным ниже кодом:
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 windowClosing(WindowEvent e) {
toRunOnClose();
frame.dispose();
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
Предложения:
Основной основной метод мог бы выглядеть примерно так:
private static void createAndShowGui() {
LoginDialog loginDialog = new LoginDialog();
loginDialog.setVisible(true);
// however you verify that the user is authentic
if (loginDialog.verify()) {
MainGui mainGui = new MainGui();
mainGui.setVisible(true);
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGui();
}
});
}
В приведенном выше примере, поскольку LoginDialog является модальным, код ниже loginDialog.setVisible(true)
не запускается, пока диалоговое окно больше не отображается.
Что касается ваших вопросов:
1) Запустите некоторый код во время загрузки основного окна,
Запустите его в одном основном методе.
2) Как я могу установить внешний вид (позже) без основного метода
У вас будет основной метод, но только один основной метод.
3) Как я могу запустить некоторый код, когда фрейм закрывается (как я уже делаю сейчас)?
Сделайте то же самое, но в одном основном методе.
modal dialogs
. Кроме того, в моем классе "Log-in Window"
содержится много кода (для целей проверки подлинности и других проверок). Существует ли простой способ преобразования класса "Log-in Window"
входа в систему» в модальное диалоговое окно? Это просто?