2014-10-06 3 views
0

Как я могу получить ссылку на кнопки в правом верхнем углу экземпляра JInternalFrame, такие как кнопка закрытия или кнопка максимизации? Я хотел бы называть setName на них.Получить кнопки в правом верхнем углу JInternalFrame

+1

Что вы планируете делать после вызова setName? Какова ваша конечная цель? – splungebob

+0

Я использую сторонний инструмент, который идентифицирует компоненты по имени. Вызывая setName, я могу использовать этот инструмент для уникальной идентификации компонентов. – Aura

ответ

3

Вы можете попробовать использовать Swing Utils, что позволит вам вернуть все кнопки, используемые внутренней рамы:

List<JButton> buttons = SwingUtils.getDescendantsOfType(JButton.class, frame); 

или вы можете получить кнопки индивидуально, указав всплывающую подсказку кнопку, которую требуется доступ:

JButton button = SwingUtils.getDescendantOfType(JButton.class, frame, "ToolTipText", "Close"); 
+0

+1 для использования toolTip в качестве идентификатора. У меня нет доступа к SwingUtils, который вы выложили, поэтому я сделал это вручную, я застрял в 3 ссылках на 'javax.swing.plaf.basic.BasicInternalFrameTitlePane $ NoFocusButton', не зная, что это такое. – splungebob

+0

@splungebob, класс 'SwingUtils' можно найти по ссылке, которую я предоставил. 'делаю это вручную, я застрял в 3 ссылках' - если у вас есть ссылки, вы можете просто передать его в JButton и вызвать' getToolTipText (...) 'вручную, чтобы получить текст, а затем установить имя на основе значение всплывающей подсказки. – camickr

+0

Я могу попасть на сайт tips4java, но код размещен на camick.com, который заблокирован здесь на работе. – splungebob

Смежные вопросы