2

JTabbedPane を使用する場合、タブをどのようにインデントしますか?

Swing のデフォルト出力:

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

望ましいインデント出力:

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

これは簡単に思えますが、解決策を見つけることができませんでした。ありがとう。

4

2 に答える 2

1

すべてのタブ付きペインで、デフォルトの LAF で次を使用できます。

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

参照: UIManager のデフォルト

個々のタブ付きペインについては、おそらく BasicTabbedPaneUI クラスの「getTabAreaInsets()」メソッドをオーバーライドして、上記の Inset を返す必要があります。

于 2010-09-07T20:18:28.487 に答える
0

単純な JTabbedPane でそれを行う方法がない場合は、次の (少し洗練されていない) ソリューションを使用できます。

JTabbedPane と JPanel で構成される独自のコンポーネントを作成します。JTabbedPaneはタブのみを表示します。それに関する限り、各タブは空です。JPanel (CardLayout を使用) は、各タブを実際に表示する役割を果たします。ChangeListener を JTabbedPane に追加し、それを使用して CardLayout のカードを切り替えます。

あとは、独自のコンポーネントに JTabbedPane と JPanel をレイアウトするだけです。これは好きなように行うことができます。これにより、タブを右に押し出すことができます。

于 2010-09-07T17:58:35.877 に答える