2013-06-08 1 views
0

У меня есть этот простой пример JavaFX вкладокКак добавить Scroll Pane в закладки

primaryStage.setTitle("Tabs Test"); 
     Group root = new Group(); 
     Scene scene = new Scene(root, 600, 500, Color.WHITE); 

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

     //Create Tabs 
     Tab tabA = new Tab(); 
     tabA.setText("Main Component"); 
     //Add something in Tab 
     StackPane tabA_stack = new StackPane(); 
     tabA_stack.setAlignment(Pos.CENTER); 
     tabA_stack.getChildren().add(new Label("[email protected] B")); 
     tabA.setContent(tabA_stack); 
     tabPane.getTabs().add(tabA); 

     Tab tabB = new Tab(); 
     tabB.setText("Second Component"); 
     //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"); 
     //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.prefHeightProperty().bind(scene.heightProperty()); 
     mainPane.prefWidthProperty().bind(scene.widthProperty()); 

     root.getChildren().add(mainPane); 
     primaryStage.setScene(scene); 
     primaryStage.show(); 

Как я могу добавить горизонтальную и вертикальную панель прокрутки в тело вкладки. Я хочу отобразить панель прокрутки только тогда, когда данные больше видимой области. Это возможно?

ответ

1

Создание базового javafx.scene.control.ScrollPane легко, пример можно найти в JavaDoc. Вот код, который помещает ScrollPane в своем первом Tab:

 ... 
     final Rectangle rect = new Rectangle(200, 200, 800, 600); 
     rect.setFill(Color.RED); 
     final ScrollPane scrollPane = new ScrollPane(); 
     scrollPane.setContent(rect); 
     tabA.setContent(scrollPane); 
     tabPane.getTabs().add(tabA); 
     ... 

Вы можете найти много полезных примеров в JavaFX tutorials тоже.

2

Вместо того чтобы устанавливать содержимое вкладок StackPane, вызовите метод setContent с ScrollPane объекта, и установить содержание этого ScrollPane к соответствующему StackPane.

+0

Не могли бы вы показать мне базовый пример, пожалуйста? –