2013-06-04 98 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

更新

听起来像是你想改变你stackedTitledPaneVBoxBorderPane。 所以这个代码:

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

是的,这是有效的。我还测试过将标签面板放在主页面的右侧,但它不起作用。为了将标签面板放置在主舞台的右侧,是否还有其他事情需要更改? –

相关问题