2013-05-23 11 views
7

私はWebアプリケーション用のGUIを開発しようとしています。タブのヘッダを水平にしたままタブを置いてTabPaneを設定したかったのです。 私は既にタブを左に置く方法を見つけましたが、多くの検索の後、ヘッダーを正しい位置にセットすることに成功しませんでした。彼らはまだ垂直で読みにくいです。JavaFX 2.0 TabPane:左のタブとタブのヘッダを水平に保つ

どうすれば修正できますか?

答えて

4

このためのオープン機能要求があります: RT-19547 New API to rotate text on tabpane tabs

機能要求は、現在開いているが、実装を予定していません。あなたは、機能リクエストに投票したりコメントしたりできます。このStackOverflowポストにリンクを張って、興味を登録してください。

これを自分で実装するには、新しいTabPaneスキンまたはpatch the existing TabPane skinを作成する必要があります。これは簡単なことではありません。

6

あなたは、タブとタブのラベルをカスタマイズするためにCSSを使用することができます。

.tab *.tab-label { 
    -fx-rotate: 90; 
} 

.tab { 
    -fx-padding: 3em 0.5em 3em 0.5em; 
} 
1

あなたは

private StackPane createTabHeader(String text, Node graphics){ 
     return new StackPane(new Group(new Label(text, graphics))); 
} 

タブヘッダーを作成するには、次の方法を使用することができます次に、以下のようなあなたのコードでそれを呼び出します:

Tab tab = new Tab(); 
tab.setGraphic(createTabHeader("TEXT", new ImageView("IMAGE_PATH"))); 

タブの幅と高さを設定する必要があります自動的に呼び出されます。

TabPane tabPane = new TabPane(tab); 
tabPane.setSide(Side.LEFT); 
tabPane.setTabMinWidth(50); 
tabPane.setTabMaxWidth(50); 
tabPane.setTabMinHeight(200); 
tabPane.setTabMaxHeight(200); 
0
// Firstly 
tabPane.setSide(Side.LEFT); 
tabPane.setRotateGraphic(true);   

Label l = new Label("Titel Tab1"); 
l.setRotate(90); 
StackPane stp = new StackPane(new Group(l)); 
stp.setRotate(90); 
tab1.setGraphic(stp); 

l = new Label("Titel Tab2"); 
l.setRotate(90); 
stp = new StackPane(new Group(l)); 
stp.setRotate(90); 
tab2.setGraphic(stp); 

tabPane.setTabMinHeight(100); 
tabPane.setTabMaxHeight(100); 
0

、ああ、私は単にStackPaneを追加し、この前に直面して覚えて、別の解決策を持っているCSSの分の幅と高さを設定し、FXMLに

-fx-tab-min-width:30;  
-fx-tab-max-width:30;  
-fx-tab-min-height:150;  
-fx-tab-max-height:150; 

<Tab closable="false"> 
      <graphic> 
       <Pane prefHeight="76.0" prefWidth="30.0"> 
       <children> 
        <Label layoutX="-35.0" layoutY="23.0" prefHeight="30.0" prefWidth="130.0" text="User"> 
         <font> 
          <Font name="SansSerif Regular" size="14.0" /> 
         </font></Label> 
       </children> 
       </Pane> 
      </graphic> 
     </Tab> 
0

をグラフィック要素を追加VBox o tabHeader内のHboxと必要なすべてのコンポーネントは、タブオリエンテーションに従いません。

関連する問題