首页 > 其他分享 >FlowPane流式布局

FlowPane流式布局

时间:2024-06-22 17:10:37浏览次数:23  
标签:FlowPane 布局 javafx 流式 按钮 import 对齐 节点

JavaFX 的 FlowPane 是一种流式布局的面板,它能够自动将子节点排列成多行或多列,当一行或一列填满后,会自动换行或换列。FlowPane 非常适合用来创建动态的、可适应不同窗口大小的布局。

以下是 FlowPane 的一些基本用法和特性:

  1. 排列方向FlowPane 默认的排列方向是水平的,子节点会从左到右排列。可以通过设置 orientation 属性来改变排列方向。

  2. 对齐方式:可以设置子节点在 FlowPane 中的水平对齐和垂直对齐方式。

  3. 行间距和列间距:可以通过 vgaphgap 属性来设置子节点之间的垂直和水平间距。

  4. 自动换行:当子节点排列不下当前行或列时,FlowPane 会自动换行或换列。

  5. 子节点宽度和高度:可以通过 prefWidthprefHeight 属性来设置子节点的首选宽度和高度。

下面是一个简单的 FlowPane 使用案例,演示了如何创建一个包含多个按钮的流式布局面板:

import javafx.application.Application;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.FlowPane;
import javafx.stage.Stage;

public class FlowPaneDemo extends Application {

    @Override
    public void start(Stage primaryStage) {
        // 创建 FlowPane 实例
        FlowPane flowPane = new FlowPane();

        // 设置 FlowPane 的对齐方式
        flowPane.setAlignment(Pos.CENTER);

        // 设置 FlowPane 的水平和垂直间距
        flowPane.setHgap(10);
        flowPane.setVgap(10);

        // 创建按钮并添加到 FlowPane
        for (int i = 1; i <= 20; i++) {
            Button btn = new Button("Button " + i);
            flowPane.getChildren().add(btn);
        }

        // 创建场景并设置 FlowPane
        Scene scene = new Scene(flowPane, 300, 200);

        // 设置舞台并显示
        primaryStage.setScene(scene);
        primaryStage.setTitle("FlowPane Demo");
        primaryStage.show();
    }

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

在这个例子中,我们创建了一个 FlowPane,设置了其对齐方式为居中,并且设置了水平和垂直间距。然后,我们创建了20个按钮并将它们添加到 FlowPane 中。由于 FlowPane 的特性,这些按钮会自动排列成多行,每行的按钮数量取决于 FlowPane 的宽度。

当你运行这个程序时,你会看到一个包含20个按钮的窗口,这些按钮会自动换行以适应窗口的宽度。你可以通过调整窗口的大小来观察按钮如何动态地重新排列。

标签:FlowPane,布局,javafx,流式,按钮,import,对齐,节点
From: https://www.cnblogs.com/zllw946/p/18262512

相关文章

  • AnchorPane锚点布局
    JavaFX的AnchorPane是一种布局方式,允许你通过指定锚点来定位子节点。锚点是相对于父节点边缘的位置,你可以使用这些锚点来控制子节点的位置和大小。AnchorPane非常适合用来创建复杂的布局,其中组件的位置需要相对于其他组件或父容器的边缘进行定位。以下是AnchorPane的一些基......
  • BorderPane边框布局
    JavaFX的BorderPane是一种布局方式,它将容器分为五个区域:顶部(top)、底部(bottom)、左侧(left)、右侧(right)和中心(center)。每个区域可以放置一个节点,中心区域可以放置任意类型的节点,而其他四个区域通常放置较小的控件或组件。以下是BorderPane的一些基本用法:区域设置:使用setTop......
  • 第二讲 常见布局及控件
    第二讲常见布局及控件一.RelativeLayout格式:android:layout_二.线性布局 layout_width不要设置wrap_content没有用layout_weight是每个控件占权重线性布局默认水平显示选择题:1.在下列选项中,用于给Activity指定主题的属性是(C)A、iconB、labelC、themeD、style分......
  • qt开发-08_layout 布局
    Qt提供了非常丰富的布局类,基本布局管理类包括:QBoxLayout、QGridLayout、QFormLayout和QStackedLayout。这些类都从QLayout继承而来,它们都来源于QObject(而不是QWidget)。创建更加复杂的布局,可以让它们彼此嵌套完成。其中QBoxLayout提供了水平和垂直的布局管理;QFormLa......
  • fyne的VBox布局
    fyne的VBox布局最常用的布局是layout.BoxLayout,它有两种变体,水平和垂直。box布局将所有元素排列在单行或单列中,并带有可选的空格以帮助对齐。一步一步实现一个如下界面布局,这个界面可以使用VBox布局来实现。代码1packagemainimport( "fyne.io/fyne/v2" "fyne.io/......
  • fyne的border布局02
    border布局02边框布局可能是最广泛用于构建用户界面的布局,因为它允许将项目定位在中心元素周围,而中心元素将扩展以填充空间。实现如下一个界面布局:实现代码如下:packagemainimport( "edgevpndemo/resources" "fyne.io/fyne/v2" "fyne.io/fyne/v2/app" "fyne.i......
  • 【vue】可视化大屏实现固定比例布局(不错位)
    背景最初方案是使用dataV中的大屏自适应组件,后续发现dataV在不同显示器分辨率下的效果会不一致导致图表内容错位等问题;后续查找资料重新写自适应。组件封装resizeMixin.js//*默认缩放值constscale={width:'1',height:'1',};//*设计稿尺寸(px)cons......
  • Web应用课 2.4 CSS——flex、响应式布局
    flex布局主轴方向flex-directionCSSflex-direction属性指定了内部元素是如何在flex容器中布局的,定义了主轴的方向(正方向或反方向)。/*文本排成行的方向*/flex-direction:row;/*类似于<row>,但方向相反*/flex-direction:row-reverse;/*文本排成列的方向*/f......
  • 以前功能正常的代码突然出现布局问题
    我的网站使用相同的CSS文件已超过十年,从未出现过任何问题,但大约24小时前,我的网站布局出现了乱码,尽管我只是为我试图用于大写字母的新图片添加了一个单独的类,迄今为止我只在一个页面上进行了测试,但整个网站(每个页面)都出现了乱码,即使我恢复了原始CSS文件且未做任何新的修改,情......
  • css布局方式汇总
    css布局解决方案文章目录css布局解决方案水平居中布局1.text-algin:center使用场景原理优点与缺点2.margin:0auto原理优点和缺点3.inline-block+text-align属性配合使用原理优点和缺点4.table配合margin属性使用原理优点和缺点5.absolute+transform属性的tran......