2009-05-20 4 views
0

Это похоже на вопрос How to build a Google-chrome tabs and menubar interface in Java Swing? (я хочу сделать то же самое), но более подробно: как разместить компоненты спереди и сзади вкладок в JTabbedPane?JTabbedPane: Компоненты до и после самих вкладок

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

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

ответ

1

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

Он полагается на поле BasicTabbedPaneUI.tabAreaInsets , чтобы освободить место для кнопки, и пользовательских setBounds кнопки компонент, чтобы разместить себя в том, что области.

Дополнительные сведения см. В разделах TabOverviewButton и TabOverviewDialogWidget в проекте laf-widget.

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

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

1

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

Там в демо его здесь: http://www.jidesoft.com/products/1.4/jide_demo.jnlp

+0

Он имеет ?! Awesome - я просто указал в сторону Jide из другого ответа здесь, на Stackoverflow, но еще не успел проверить API-интерфейсы - скриншоты вообще не намекают на такую ​​функцию. Думаю, кто-то теряет ЛаФ с помощью Jide? – stolsvik

+0

Это зависит от того, что вы делаете. Компоненты JIDE довольно хороши в отношении LaFs. Мы используем его с синтетикой, и он без проблем. – banjollity

+0

Как это зависит? У вас есть указатель на то, где находится документация? Кажется, я не могу найти его. Я пытаюсь использовать его сейчас с Веществом, и он нечестно этого не уважает. Кажется, что некоторые пользовательские элементы «vsnet» могут рисовать. – stolsvik