JavaFX Accordion布局

可以使用手风琴(accordion)控件对标题窗格进行分组。

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Accordion;
import javafx.scene.control.Button;
import javafx.scene.control.TitledPane;
import javafx.stage.Stage;

public class Main extends Application {
    public static void main(String[] args) {
        Application.launch(args);
    }

    @Override
    public void start(Stage primaryStage) {
        Group g = new Group();
        Scene scene = new Scene(g, 550, 250);

        TitledPane t1 = new TitledPane("T1", new Button("B1"));
        TitledPane t2 = new TitledPane("T2", new Button("B2"));
        TitledPane t3 = new TitledPane("T3", new Button("B3"));
        Accordion accordion = new Accordion();
        accordion.getPanes().addAll(t1, t2, t3);
// from  ww W. y  I I ba  I . c  O  M
        g.getChildren().add(accordion);

        primaryStage.setScene(scene);
        primaryStage.show();
    }
}

Java

上面的代码生成以下结果。

手风琴事件

import javafx.application.Application;
import javafx.beans.value.ObservableValue;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Accordion;
import javafx.scene.control.Button;
import javafx.scene.control.TitledPane;
import javafx.stage.Stage;

public class Main extends Application {
    public static void main(String[] args) {
        Application.launch(args);
    }

    @Override
    public void start(Stage primaryStage) {
        Group g = new Group();
        Scene scene = new Scene(g, 550, 250);

        TitledPane t1 = new TitledPane("T1", new Button("B1"));
        TitledPane t2 = new TitledPane("T2", new Button("B2"));
        TitledPane t3 = new TitledPane("T3", new Button("B3"));
        Accordion accordion = new Accordion();
        accordion.getPanes().addAll(t1, t2, t3);

        accordion.expandedPaneProperty()
                .addListener((ObservableValue<? extends TitledPane> ov, TitledPane old_val, TitledPane new_val) -> {
                    if (new_val != null) {
                        System.out.println(accordion.getExpandedPane().getText());
                    }
                });

        g.getChildren().add(accordion);
// copyright  wW W.YI I BA i.c O m 
        primaryStage.setScene(scene);
        primaryStage.show();
    }
}

Java

当在手风琴中打开标题窗格时,手风琴的展开窗格属性会更改。

上面的代码生成以下结果。

JavaFX提供了多种布局管理器来帮助您设计和排列用户界面元素。下面列举了几种常用的布局管理器: 1. StackPane:将元素堆叠在一起,可以通过设置偏移量来控制它们的位置。 2. BorderPane:将元素放置在上、下、左、右和中间的区域。 3. GridPane:创建一个网格布局,可以在行和列中放置元素。 4. HBox和VBox:水平或垂直地排列元素。 5. FlowPane:按照水平或垂直方向自动换行排列元素。 6. TilePane:在一个瓷砖状的网格中排列元素。 使用布局管理器的一般步骤是: 1. 创建一个父容器,如StackPane、BorderPane等。 2. 创建需要添加到父容器中的子节点,并设置它们的样式和属性。 3. 使用布局管理器的方法将子节点添加到父容器中。 以下是一个示例代码,演示了如何使用JavaFX布局管理器来创建一个简单的界面: ```java import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.layout.StackPane; import javafx.stage.Stage; public class Main extends Application { @Override public void start(Stage primaryStage) { // 创建一个StackPane作为父容器 StackPane root = new StackPane(); // 创建一个按钮 Button button = new Button("Click me!"); // 将按钮添加到父容器中 root.getChildren().add(button); // 创建一个场景,并将父容器设置为根节点 Scene scene = new Scene(root, 300, 200); // 设置舞台的场景 primaryStage.setScene(scene); primaryStage.setTitle("JavaFX布局示例"); primaryStage.show(); } public static void main(String[] args) { launch(args); } } ``` 在这个示例中,我们使用了StackPane作为父容器,并在其中添加了一个按钮。您可以根据需要选择适合您界面布局布局管理器,并在其中添加更多的UI元素。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智慧浩海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值