Я хотел бы убедиться, что при нажатии кнопки вместо красной панели, перекрывающей черную панель, красная панель переходит под черную панель, чтобы уступить место зеленой панели. Короче говоря, я бы хотел, чтобы черная панель (заголовок) всегда оставалась выше всех остальных. Я пытался использовать toback () и toFront (), но это ничего не меняет. Я также пытался с setViewOrder (), но также не было никаких результатов.
Ниже приведен код:
import javafx.animation.KeyFrame;
import javafx.animation.KeyValue;
import javafx.animation.Timeline;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.Pane;
import javafx.stage.Stage;
import javafx.util.Duration;
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception{
primaryStage.setTitle("Prova");
Pane mainPane=new Pane();
Pane header=new Pane();
header.setPrefSize(300, 100);
header.getStyleClass().add("header");
header.setViewOrder(1);
Pane main=new Pane();
main.setLayoutY(100);
main.setPrefSize(300, 200);
main.getStyleClass().add("main");
Pane p1=new Pane();
p1.getStyleClass().add("p1");
p1.setPrefSize(300,200);
p1.setViewOrder(-1);
Pane p2=new Pane();
p2.getStyleClass().add("p2");
p2.setPrefSize(300,200);
p2.setViewOrder(-1);
main.getChildren().addAll(p1);
Button b=new Button();
b.setOnAction(e -> {
main.getChildren().addAll(p2);
Timeline timeline = new Timeline(
new KeyFrame(Duration.millis(0), new KeyValue(p1.layoutYProperty(), p1.getLayoutY())),
new KeyFrame(Duration.millis(800), new KeyValue(p1.layoutYProperty(), p1.getLayoutY()-200)),
new KeyFrame(Duration.millis(0), new KeyValue(p2.layoutYProperty(), p2.getLayoutY()+200)),
new KeyFrame(Duration.millis(800), new KeyValue(p2.layoutYProperty(), p2.getLayoutY()))
);
timeline.play();
});
mainPane.getChildren().addAll(header, b, main);
Scene scene = new Scene(mainPane, 300, 275);
scene.getStylesheets().add("style.css");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
Стиль. css:
.header {
-fx-background-color: #0b0b0b;
}
.main {
-fx-background-color: #121212;
}
.p1 {
-fx-background-color: red;
}
.p2 {
-fx-background-color: green;
}