2010-09-07 3 views
2

При использовании JTabbedPane, как вы отступаете от вкладок?JTabbedPane indent

Качели выход по умолчанию:

------- --------- ------ 
| A | | B | | C | 
------------------------------ 
|       | 
|       | 
|       | 
|       | 
|       | 

Желаемая отступом выход:

------- --------- ------ 
    | A | | B | | C | 
------------------------------ 
|       | 
|       | 
|       | 
|       | 
|       | 

Это кажется достаточно простым, но я не смог найти решение. Спасибо.

+0

Вы имеете в виду, что у вас есть две панели с вкладками, и вы хотите, чтобы первая вкладка во второй вкладке была «отступом» w.r.t. первая вкладка первой панели с вкладками? –

+0

Только одна вкладка. Я добавил свой вопрос, чтобы добавить разъяснения. –

ответ

1

Для всех вкладках панелей вы можете использовать следующие с умолчанию LAF на:

UIManager.put("TabbedPane.tabAreaInsets", new Insets(2, 20, 0, 6)); 

Смотрите также: UIManager Defaults

Для отдельных вкладках панелей вы, вероятно, нужно будет переопределить «getTabAreaInsets()» метод класса BasicTabbedPaneUI, чтобы вернуть вышеприведенную вставку.

+0

спасибо, хорошо работает –

0

Если нет никакого способа сделать это с помощью простого JTabbedPane, вы можете использовать следующий (немного безвкусный) решение:

Создать свой собственный компонент, состоящий из JTabbedPane и JPanel. JTabbedPane отображает только вкладки; насколько это важно, каждая вкладка пуста. JPanel (используя CardLayout) отвечает за отображение каждой вкладки. Добавьте ChangeListener в JTabbedPane и используйте его для переключения между картами CardLayout.

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