如何在javaFX 2.0应用程序中实现awt.CardLayout的功能?

Anu*_*dha 15 javafx-2

在我的javaFX 2.0应用程序中,我需要替换使用awt.CardLayout的组件.Cardlayout具有堆栈功能,可显示堆栈中的顶级组件.我们也可以手动配置要显示的内容.

在javaFX 2.0中,有一个名为StackPane的布局.但它似乎不像Cardlayout.

Ser*_*nev 13

没有CardLayout,但您可以使用TabPane或只是切换组:

public void start(Stage stage) {

    VBox vbox = new VBox(5);

    Button btn = new Button("1");
    Button btn2 = new Button("2");

    final Pane cardsPane = new StackPane();
    final Group card1 = new Group(new Text(25, 25, "Card 1"));
    final Group card2 = new Group(new Text(25, 25, "Card 2"));

    btn.setOnAction(new EventHandler<ActionEvent>() {
        public void handle(ActionEvent t) {
            cardsPane.getChildren().clear();
            cardsPane.getChildren().add(card1);
        }
    });

    btn2.setOnAction(new EventHandler<ActionEvent>() {
        public void handle(ActionEvent t) {
            cardsPane.getChildren().clear();
            cardsPane.getChildren().add(card2);
        }
    });

    vbox.getChildren().addAll(btn, btn2, cardsPane);
    stage.setScene(new Scene(vbox));
    stage.setWidth(200);
    stage.setHeight(200);
    stage.show();

}
Run Code Online (Sandbox Code Playgroud)

  • 请注意,在2.2版本中有一个名为"Pagination"的新控件可能更符合您的需求. (3认同)

met*_*sim 9

另一种选择是使用StackPane和设置所有的可见性,但CURENT Panefalse.不理想,但另一种思考问题的方式