Image

Imagecatkeen wrote in Imageru_java

Categories:

Подскажите, где можно писать нубовские вопросы (вопросы новичков)? (вдруг есть раздел, тег или тема)

А пока напишу свой вопрос здесь.
Он скорее относится к технологии программирования, нежели к синтаксису языка или особенностям IDE (хотя скорее всего в java есть готовые конструкции для этого).
Наверняка тут есть более опытные товарищи, которые решали подобную задачу не один раз.
Итак. Задача тривиальная. Нужно сделать окно авторизации и после этого либо открыть главное окно программы либо завершить работу.
[Spoiler (click to open)]
Для этого я пока нашел 3 варианта, но из них только один реализовал. Во всех случаях есть основной класс с точкой входа.
В методе  main есть статическое поле isAuth (авторизован). По умолчанию - false.

Первый способ: Мы вызываем функцию, которая инициирует окно авторизации, где мы вводим логин-пароль. И если авторизация прошла успешно - возвращаем "true".
В методе main мы смотрим, если функция вернула true - открываем главное окно.
Здесь проблема в том что, функция  открыла окно авторизации и продолжила работу. Предположил, что нужно модальное окно сделать, но JDialog не помог (видимо само свойство модальности не установил или иное свойство не настроил).

Второй способ: инициируем главное окно (пустое) и окно авторизации. Но тут, тоже, скорее всего из-за того что не осилил работу модального окна, у меня открылись обе формы, где возможен переход от одной к другой (что не правильно).

Реализовал пока третий вариант.
функция main вызывает авторизацию. По нажатию на кнопку входа происходит проверка. И если авторизация произведена, то в основном классе приложения вызывается функция формирования главного окна, текущая форма делается невидимой.
Понятно, что такое решение будет работать, но есть ощущение, что это не правильный подход.
Пока писал текст, подумал, что основном классе приложения, можно в функцию инициации главного окна передать саму форму авторизации, и там ее убить, но хз...