Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java: Общие вопросы > Доступ к JFrame из компонента |
Автор: WhoogMan 22.10.2013, 11:46 |
Как обратиться к форме (вызвать ее метод: свернуть, закрыть или просто цвет фона изменить) из другого компонента или собственного класса? В C#, Delphi главная форма была доступно из любой части программы, а как это делается в java? |
Автор: WhoogMan 22.10.2013, 13:22 | ||||||
а как к ней обращаться? допустим: создал консольное приложение
у меня есть класс кнопки
и кнопкой я хочу закрыть форму
|
Автор: Mirkes 22.10.2013, 14:16 |
Я в таких случаях использую один из двух вариантов: 1. Если я знаю, что будет только одна форма этого класса, то использую шаблон singleton и внутри класса формы я всегда знаю ссылку на нее. В Вашем случае это вполне подходит. 2. Если я знаю, что ссылка на какую-либо форму потребуется в определенном классе, то я просто ее туда передаю. Либо создаю возможность спросить, где она. |
Автор: WhoogMan 22.10.2013, 14:59 | ||||
1. - Спасибо, много почитал. Ошибок нет, но ощущение будто я обращаюсь не к своей форме я правильно понял? моя форма
и затем в обработчике кнопки
2. У меня побольше вложенных классов (панель->панель->панель->кнопка). Тащить внутрь ссылку на форму не хочется |
Автор: Mirkes 22.10.2013, 19:28 |
Вобщем-то верно, единственный вопрос, как форма создается впервые? Если через прямой вызов конструктора, то это не правильно. В правильно реализованном Singletone конструктор private и доступ к классу только через getInstance. Этого в приведенном фрагменте не видно. Если главная форма создается не через getInstance, то вы таки имеете две формы ![]() |
Автор: WhoogMan 23.10.2013, 11:04 |
это очевидно. Спасибо, работает |
Автор: AlexAddams 4.12.2013, 23:40 |
Обычно в таких случаях, добавляю один слушатель для нескольких объектов, отдельный класс слушатель и add...Listeners(...) метод кнопки, окна, метки и т. д., выполняет одно и тоже действие и в одном месте. Таким образом можно сгруппировать разными слушателями хоть каждый объект по отдельности. |