JTabbedPane: компоненты до и после самих вкладок - PullRequest
0 голосов
/ 20 мая 2009

Это похоже на вопрос Как создать интерфейс Google Chrome для вкладок и меню в Java Swing? (я хочу сделать то же самое), но ближе к делу: как разместить компоненты перед и за вкладками в JTabbedPane?

Я уже сам придумал идею кнопок, но я предпочел бы иметь JTabbedPane, поскольку это действительно так, но он украшен кнопкой или значками по бокам.

Я видел, что проект laf-widget от Кирилла делает что-то вроде этого (значок увеличительного стекла слева от вкладок) для нескольких LaF. Тем не менее, я должен признать, что я еще недостаточно хорошо разбираюсь в том, чтобы понять, как он это делает - и также это выглядит как довольно сложный процесс, когда один «физически» меняет рассматриваемый LaF (байт-код управляет им), вводя laf -Виджет вещи в делегаты пользовательского интерфейса - и я до сих пор не знаю, как на самом деле модулируется JTabbedPane или TabbedPaneUI, чтобы внедрить этот значок / кнопку.

Ответы [ 2 ]

1 голос
/ 21 мая 2009

JIDE имеют панель с вкладками как часть своего набора компонентов, которая предоставляет эту функциональность в виде простых методов setBeforeComponent () и setAfterComponent ().

Здесь есть демо: http://www.jidesoft.com/products/1.4/jide_demo.jnlp

1 голос
/ 21 мая 2009

Я наконец спросил Кирилла из Substance LaF / laf-widget о том, как ему удается поместить кнопку перед вкладками в laf-виджете, которая украшает JTabbedPanes, и это его ответ:

Это зависит от Поле BasicTabbedPaneUI.tabAreaInsets чтобы освободить место для кнопки, и пользовательский setBounds кнопки компонент, чтобы позиционировать себя в этом область.

Для получения дополнительной информации см. TabOverviewButton. и классы TabOverviewDialogWidget в проект laf-widget.

В общем, интерфейс панели с вкладками делегат является одним из наименее привлекательные для повышения, так как это имеет много частного и пакета защищенные методы

Спасибо, Кирилл!

...