如何在javaFX 2.0应用程序中实现awt.CardLayout的功能? [英] How can I implement the functionality of awt.CardLayout in my javaFX 2.0 application?

查看:206
本文介绍了如何在javaFX 2.0应用程序中实现awt.CardLayout的功能?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

In my javaFX 2.0 app, I need to replace a component which is used awt.CardLayout. Cardlayout has a functionality as a stack which displays the top component in stack. And also we can manually configure which is to be displayed.

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

In javaFX 2.0, there is a layout called StackPane. But It doesn't seems like Cardlayout.

推荐答案

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

There is no CardLayout, but you can use TabPane or simply switch groups:

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();

}

这篇关于如何在javaFX 2.0应用程序中实现awt.CardLayout的功能?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆