优秀的编程知识分享平台

网站首页 > 技术文章 正文

JavaFX学习笔记015(Accordion可折叠面板)

nanyue 2024-07-30 03:42:13 技术文章 6 ℃

引言

JavaFX中的Accordion和TitledPane是用于创建可折叠面板的布局组件,它们通常用于实现具有展开和折叠功能的界面。下面分别介绍Accordion和TitledPane的基本概念和用法:

Accordion组件:

Accordion是一个垂直的布局容器,其中包含多个TitledPane。每个TitledPane都有一个标题和一个内容区域,用户可以单击标题以展开或折叠相应的内容区域。

Accordion accordion = new Accordion();

TitledPane pane1 = new TitledPane("面板1", new Label("这是面板1的内容"));
TitledPane pane2 = new TitledPane("面板2", new Label("这是面板2的内容"));

accordion.getPanes().addAll(pane1, pane2);

TitledPane组件:

TitledPane是一个带标题的面板,可以包含任何JavaFX节点。它通常作为Accordion或其他布局容器的子节点使用。

TitledPane titledPane = new TitledPane();
titledPane.setText("面板标题");
titledPane.setContent(new Label("这是面板的内容"));

示例:

下面是一个结合使用Accordion和TitledPane的简单示例

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Accordion;
import javafx.scene.control.Label;
import javafx.scene.control.TitledPane;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class EnhancedAccordionDemo extends Application {

    @Override
    public void start(Stage primaryStage) {
        Accordion accordion = new Accordion();

        // 创建第一个 TitledPane
        TitledPane pane1 = new TitledPane("面板1", new Label("这是面板1的内容"));
        pane1.setCollapsible(false); // 禁止折叠

        // 设置展开时的监听器
        pane1.expandedProperty().addListener((obs, wasExpanded, isNowExpanded) -> {
            System.out.println("面板1现在是 " + (isNowExpanded ? "展开" : "折叠"));
        });

        // 创建第二个 TitledPane
        TitledPane pane2 = new TitledPane("面板2", new Label("这是面板2的内容"));
        pane2.setAnimated(false); // 禁用动画效果

        accordion.getPanes().addAll(pane1, pane2);

        VBox root = new VBox(10);
        root.getChildren().add(accordion);

        Scene scene = new Scene(root, 300, 200);

        primaryStage.setTitle("Enhanced Accordion Demo");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}


在这个示例中:

  • setCollapsible(false) 方法被用于禁止折叠。这意味着用户无法通过单击标题来展开或折叠该面板。
  • expandedProperty() 方法用于添加展开状态变化的监听器,可以在面板展开或折叠时执行相应的操作。
  • setAnimated(false) 方法被用于禁用动画效果,使展开和折叠的过程不显示动画。

Tags:

最近发表
标签列表