У меня BorderPane в качестве моего Root.Левая сторона содержит выдвижное меню, а в центре - контейнер для хранения компонентов.Я хочу растянуть длину моего основного контейнера до ширины рабочей области, когда выдвижное меню скрыто и противоположно.
Я попытался масштабировать мой BorderPane mainContent с помощью ScaleTransition, но это не так.ScaleTransition просто растягивать, не устанавливать ширину ...
@Override
public void start(Stage primaryStage) throws Exception{
Label label = new Label("->");
label.setStyle("-fx-text-fill: orange; -fx-background-color: black");
VBox content = new VBox();
content.setStyle("-fx-background-color: purple");
BorderPane.setAlignment(label, Pos.CENTER);
BorderPane menu = new BorderPane(content,null,label,null,null);
menu.setMaxWidth(250);
menu.setPrefWidth(250);
menu.setTranslateX(-230);
menu.setStyle("-fx-background-color: yellow");
TranslateTransition menuTranslation = new TranslateTransition(Duration.millis(500), menu);
menuTranslation.setFromX(-230);
menuTranslation.setToX(0);
BorderPane mainContent = new BorderPane(new Button("OKEY"),new Button("OKEY"),new Button("OKEY"),new Button("OKEY"),new Button("OKEY"));
mainContent.setStyle("-fx-background-color: cyan");
ScaleTransition mainContenTransition = new ScaleTransition(Duration.millis(500), mainContent);
//TranslateTransition mainContenTranslation = new TranslateTransition(Duration.millis(500), mainContent);
ParallelTransition parallelTransition = new ParallelTransition();
parallelTransition.getChildren().addAll(menuTranslation, mainContenTransition);
menu.setOnMouseEntered(evt -> {
mainContenTransition.setFromX(mainContent.getWidth());
mainContenTransition.setToX(primaryStage.getWidth());
parallelTransition.setRate(1);
parallelTransition.play();
});
menu.setOnMouseExited(evt -> {
mainContenTransition.setFromX(mainContent.getWidth());
mainContenTransition.setToX(primaryStage.getWidth());
parallelTransition.setRate(-1);
parallelTransition.play();
});
mainContent.setStyle("-fx-background-color: cyan");
BorderPane root = new BorderPane(mainContent, null,null,null, menu);
primaryStage.setTitle("Hello World");
primaryStage.setScene(new Scene(root, 800, 600));
primaryStage.show();
//mainContent.setScaleX(primaryStage.getWidth());
}