Я создаю редактор уровней для своей java-игры с использованием Java swing.Включить «включено» состояние большого количества компонентов в Java Swing applicaiton
Одна из особенностей заключается в том, что есть кнопка для включения и выключения игры для проверки уровня. Игра проходит внутри jpanel, затем вы снова нажимаете кнопку, чтобы развязать ее, и она отключает игру.
Я только хочу, чтобы пользователь мог изменить материал или кнопки в приложении swing, когда игра не работает, когда она запущена. Я задал фокус игровому компоненту. Единственная кнопка в приложении swing, которую они должны нажать, - это кнопка переключения, чтобы отменить игру.
Проблема в том, что я не могу придумать, как это сделать. Используя рекурсивную функцию, я мог легко выполнить цикл и найти все компоненты и сделать setEnabled (false), но когда игра будет отключена, у нее нет способа узнать, что было в предыдущем разрешенном состоянии (по другим вопросам, например, другим компонентам, отвечающим на setEnabled вызывается на других компонентах)
Я думаю, что мне действительно нужен только какой-то способ просто «убить» пользовательский ввод в приложение swing, когда игра запущена. Но предпочтительно использовать способ щелчка еще раз переключить кнопку, чтобы вернуть состояние приложения, и игра, которая работает внутри Jpanel, должна иметь возможность фокусироваться ...
Есть ли какой-либо способ сделать такую вещь вообще без огромного количества «организационных «код для управления компонентами в swing ap пликация?
Вы должны использовать Map, до тех пор, как пользовательских компонентов используйте реализацию hashcode() по умолчанию (возвращая адрес памяти). Это уменьшит количество мелких объектов (Boolean class использует интернирование, поэтому будет только два экземпляра). –
@ AurélienRibon: тогда у вас не будет способа специально получить компонент. Как бы вы вернули стартовую кнопку из этой «Карты»? –
Ваша кнопка запуска определена где-то, поэтому вы должны иметь ссылку на нее где-то. Но карта предназначена для использования в рекурсивной функции, как предлагал ОП. –