Подскажите, как в языке программирования Java SE 6 можно обратиться к объекту другого класса (в моём случае - к кнопке из другого фрейма)?
И как изменить текст на кнопке? (это для проверки правильности моего алгоритма).
Java
Как обратиться к объектам другого класса
Можно конечно сделать кнопку публичной, но управлять классом извне напрямую считается плохим тоном, поэтому следует просто либо задавать эти данные через конструктор, либо через метод. А вообще, не вижу смысла обзывать кнопки в другом классе. Не надо превращать код в свалку.
"объекты другого класса"????
ты понимаешь что "класс" это тоже "объект"? да?
ты понимаешь что "класс" это тоже "объект"? да?
Константин Ананьев
видишь пример? или ты прочитал предложение перед ним и сразу ответ настрочил?
Вы, вероятно, оговорились. Не к объектам, а к содержимому контейнера. Фрейм - контейнер. Вы же сами в него положили кнопку, когда писали add. Элементы контейнера - перечислимые, то есть их можно хоть по очереди доставать, хоть по индексу, хоть по ключу.
Константин Ананьев
а точнее можно? так пойдёт: фрейм. кнопка = кнопка (новый текст)?
Или передать объект одного класса в нужный метод другого в качестве параметра
Неужели в твоей программе нет ни одного обращения к объектам другого класса? Это приложение "Hello world"?
Элементарно. Через точку: sameObject.aMetod() или sameObject.aField
Вызываемый метод или поле должно быть public.
Элементарно. Через точку: sameObject.aMetod() или sameObject.aField
Вызываемый метод или поле должно быть public.
Константин Ананьев
и на фига мне делать несколькофреймовый хеллоу ворлд?
самый пряморукий способ - передать обьект другого класса в конструкторе
protected кнопка
public конструктор ( Кропка кропка) {
this. кнопка = кнопка;
}
и делаешь с этой переменной что хочешь
или то же самое в sette-ре.
для переименования кнопки пряморуким способом является обьявление listenera на какое то событие, в ходе которого этот листенер меняет текст на кнопке, листенеру следует передавать обьект кнопки как описано выше в конструкторе.
Менее пряморукие способы имхо:
- сделать обьект статическим
- сохранить обьект в статической хеш таблице objects < String, Object>
- сделать статический метод static changeButton ( твой, обьект, кнопка)
- вывернуть код на изнанку visitor-ом, то есть тогда "кнопка" будет знать про этот класс
protected кнопка
public конструктор ( Кропка кропка) {
this. кнопка = кнопка;
}
и делаешь с этой переменной что хочешь
или то же самое в sette-ре.
для переименования кнопки пряморуким способом является обьявление listenera на какое то событие, в ходе которого этот листенер меняет текст на кнопке, листенеру следует передавать обьект кнопки как описано выше в конструкторе.
Менее пряморукие способы имхо:
- сделать обьект статическим
- сохранить обьект в статической хеш таблице objects < String, Object>
- сделать статический метод static changeButton ( твой, обьект, кнопка)
- вывернуть код на изнанку visitor-ом, то есть тогда "кнопка" будет знать про этот класс
По хорошему, тот фрейм который владеет кнопкой должен иметь паблик метод, типа setText_ButtonStart(String text)
Похожие вопросы
- Что такое класс, метод и объект в языке программирования java?
- Что такое объекты в Java?
- Какая разница между объектом, экземпляром, ссылке? Прочитайте вопрос полностью...
- Зачем создают отдельный объект монитора для synchronized блока?
- Можно ли реализовать полиморфизм (Java) с общим конструктором для разных дочерних классов?
- как правильней организовывать абстрактный класс JAVA
- Абстрактный класс или интерфейс (java)
- Чем абстрактный класс отличается от интерфейса?
- Стоит ли во всех случаях сделать методы класса статичным, если они не используют абсолютно никакое поле класса?
- Возможно глупый вопрос, но всё же... Зачем создавать объекты в java?