Как получить координаты заголовка вкладки в jTabbedPane? - PullRequest
4 голосов
/ 28 декабря 2011

У меня есть метод, который рисует анимированное изображение на стеклянной панели для имитации пульсации значка.Ему нужно изображение (я использую значки компонентов) и границы (кнопки fe).Мне нужна эта область:

enter image description here

Я знаю, что кнопка имеет getBounds(), у вкладок есть что-то подобное?Или, может быть, координаты иконы .Либо было бы хорошо.

Ответы [ 4 ]

5 голосов
/ 21 августа 2013

У меня была похожая проблема.Мне нужна была высота табуляции.int tabHeight = myTabPanel.getUI().getTabBounds(myTabPanel, 0).height;.

3 голосов
/ 28 декабря 2011

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

3 голосов
/ 28 декабря 2011

Вы должны создать собственный BasicTabbedPaneUI , потому что эти методы защищены, и нет способа переопределить эти методы извне (это Стандартный Java API )

1 голос
/ 28 декабря 2011

Я знаю, что кнопка имеет getBounds (), есть ли у вкладок что-то похожее?

См. getTabBounds() метод BasicTabbedPaneUI. Вам не нужно настраивать класс только для того, чтобы получить эти данные. Вам нужно настроить пользовательский интерфейс только в том случае, если вы собираетесь выполнять анимацию в пользовательском интерфейсе.

Проблема в том, что размер вкладки будет соответствовать размеру текста. Таким образом, у вас не будет пустого места для вашей иконки, если вы не добавите пустой значок на вкладку. Если вы собираетесь это сделать, вы можете использовать класс Animatied Icon , который позволяет комбинировать значки для анимации.

...