Java: есть ли способ узнать объект о Компоненте где-нибудь в Компоненте?

В продолжение моего вопрос о свойстве java.awt.Component.getName (), мне интересно, есть ли способ найти произвольный объект где-нибудь в Компоненте, аналогичный свойство тега в .NET? Это было бы очень удобно для любого кода, который работает с компонентом, но не обязательно знает, что это за компонент.

Например, скажем, я пытаюсь реализовать справочную систему для всего приложения, которая знает, как смотреть на любой компонент, на который в данный момент указывает мышь, добраться до этого компонента, вытащить его текст справки и отобразить его на собственной панели на экране. (нет, я не хочу использовать всплывающую подсказку). Мой ответ в настоящее время - использовать Имя (getName () / setName ()) для хранения текста справки, и это будет работать, но Имя должно быть строкой. Если бы я хотел стать более привлекательным и сохранить что-нибудь, кроме строки, я бы застрял.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
123
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Компонент не может этого сделать. Однако одним из вариантов было бы использовать статическую карту и предоставить ей оболочку, чтобы вы могли запрашивать данные, относящиеся к любому объекту пользовательского интерфейса (или другому). Я делал подобные вещи раньше, и пока вы настраиваете его как своего рода службу с интерфейсами, он может быть довольно элегантным и не нарушать ваш объектно-ориентированный дизайн.

Да, вы можете использовать get / setName для установки какого-либо идентификатора, а затем использовать этот идентификатор для сопоставления с вашей справкой. материал JavaHelp CSH работает примерно так, за исключением того, что я считаю, что сам компонент помещается на карту?

Ответ принят как подходящий

Обычно я создаю хэш и помещаю (компонент, файл cookie) всякий раз, когда добавляю компонент на экран. Когда вам нужно вернуть свой объект cookie (возможно, в случае события), событие всегда получает копию компонента, и тогда вы просто получаете (компонент) от своего файла cookie.

В некоторых экстремальных условиях я разделил элемент управления на подклассы и просто добавил поле. Это быстрое и грязное исправление, поскольку создание подкласса компонента похоже на несколько строк кода и может быть в том же классе, что и файл, в котором вы создаете свой экран. Это полезно только в том случае, если вам просто нужно хранить данные, связанные с одним типом управления.

JComponent имеет putClientProperty и getClientProperty.

Другие вопросы по теме