2013-06-04 4 views
1

У меня есть этот код JavaFX с вкладками. Можете ли вы сказать мне, как я могу установить положение панели вкладок, чтобы всегда быть на левой стороне основного этапа:Как установить положение табуляции в JavaFX

VBox stackedTitledPanes = createStackedTitledPanes(); 

     ScrollPane scroll = makeScrollable(stackedTitledPanes); 

     TabPane tabPane = new TabPane(); 
     BorderPane mainPane = new BorderPane(); 

     tabPane.setStyle("-fx-font-size: 12pt;"); // Set global size for the font 
     // Create Tabs 
     Tab tabA = new Tab(); 
     tabA.setText("Main Component"); 
     tabA.setStyle("-fx-font-size: 12pt;"); // Set size of the tab name 
     // Add something in Tab 
     StackPane tabA_stack = new StackPane(); 
     tabA_stack.setAlignment(Pos.CENTER); 
     tabA_stack.getChildren().add(scroll); 
     tabA.setContent(tabA_stack); 
     tabPane.getTabs().add(tabA); 

     Tab tabB = new Tab(); 
     tabB.setText("Second Component"); 
     tabB.setStyle("-fx-font-size: 12pt;"); // Set size of the tab name 
     // Add something in Tab 
     StackPane tabB_stack = new StackPane(); 
     tabB_stack.setAlignment(Pos.CENTER); 
     tabB_stack.getChildren().add(new Label("[email protected] B")); 
     tabB.setContent(tabB_stack); 
     tabPane.getTabs().add(tabB); 

     Tab tabC = new Tab(); 
     tabC.setText("Last Component"); 
     tabC.setStyle("-fx-font-size: 12pt;"); // Set size of the tab name 
     // Add something in Tab 
     StackPane tabC_vBox = new StackPane(); 
     tabC_vBox.setAlignment(Pos.CENTER); 
     tabC_vBox.getChildren().add(new Label("[email protected] C")); 
     tabC.setContent(tabC_vBox); 
     tabPane.getTabs().add(tabC); 

     mainPane.setCenter(tabPane); 

     mainPane.setPrefSize(395, 580); 
     mainPane.setLayoutX(850); 
     mainPane.setLayoutY(32); 

     scroll.setPrefSize(395, 580); 
     scroll.setLayoutX(850); 
     scroll.setLayoutY(32); 

     root.getChildren().add(mainPane); 

ответ

3

Update

Похоже, вы хотите изменить свою stackedTitledPane от VBox - BorderPane. Так этот код:

VBox stackedTitledPanes = new VBox(); 

становится:

BorderPane stackedTitledPanes = new BorderPane(); 

Затем, когда вы хотите добавить узлы, необходимо указать, какой раздел вы хотите поместить их (я поставил метку на центральной панели в виде наполнитель):

stackedTitledPanes.setLeft(mainPane); 
stackedTitledPanes.setCenter(new Label("Main Content")); 

Старый ответ

Это поместит выступы на левом (я предполагаю, что это то, что вы ищете):

tabPane.setSide(Side.LEFT); 

TabPane Left side

+0

меня в моем, но все равно спасибо за ценные пример. Моя идея состоит в том, чтобы всегда располагать панель вкладок (со всеми компонентами) на левой стороне основного этапа, потому что когда я изменяю размер основной сцены, позиция будет статичной. Я хочу, чтобы я сначала изменял размер основной сцены, чтобы увидеть панель вкладок с левой стороны. –

+0

А, я вижу, к чему вы клоните - я обновил свой ответ, чтобы лучше отразить ваши потребности. –

+0

Да, это работает. Я также проверил, чтобы панель вкладок была на правой стороне главной страницы, но не работала. Есть ли что-то еще, что я должен изменить, чтобы поместить панель вкладок в правой части основного этапа? –