JavaFX布局详解与代码实例

news2024/12/27 13:51:48

JavaFX布局详解与代码实例

  • 一、JavaFX布局的原理
    • 1.1 JavaFX布局容器
    • 1.2 布局约束
  • 二、常用JavaFX布局
    • 2.1 VBox和HBox布局
    • 2.2 GridPane布局
    • 2.3 BorderPane布局
  • 三、JavaFX布局代码实例
  • 四、总结与展望

正文:

引言:
JavaFX是一种功能强大的用户界面(UI)框架,提供了丰富的组件和布局选项,用于创建各种各样的应用程序、游戏和可视化界面。在JavaFX中,布局是实现界面设计的重要组成部分,它能够自动根据窗口大小和组件内容进行调整,从而适配不同的屏幕尺寸和设备。

一、JavaFX布局的原理

1.1 JavaFX布局容器

JavaFX提供了多种布局容器来管理和组织UI组件,如VBox、HBox、GridPane等。每个布局容器都有其特定的用途和排列规则,可以根据需要灵活选择。

1.2 布局约束

JavaFX布局容器通过布局约束来控制组件的位置和大小。布局约束定义了各个组件在容器中的位置关系和尺寸调整方式,具体取决于使用的布局容器。

二、常用JavaFX布局

2.1 VBox和HBox布局

1.VBOX

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class VBoxLayoutDemo extends Application {

    @Override
    public void start(Stage primaryStage) {
        primaryStage.setTitle("VBox布局示例");

        VBox vbox = new VBox();
        Button button1 = new Button("按钮1");
        Button button2 = new Button("按钮2");
        Button button3 = new Button("按钮3");

        vbox.getChildren().addAll(button1, button2, button3);

        Scene scene = new Scene(vbox, 300, 200);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

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

2.HBOX

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;

public class HBoxLayoutDemo extends Application {

    @Override
    public void start(Stage primaryStage) {
        primaryStage.setTitle("HBox布局示例");

        HBox hbox = new HBox();
        Button button1 = new Button("按钮1");
        Button button2 = new Button("按钮2");
        Button button3 = new Button("按钮3");

        hbox.getChildren().addAll(button1, button2, button3);

        Scene scene = new Scene(hbox, 300, 200);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

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

VBox(垂直箱式布局)和HBox(水平箱式布局)是两种最简单和常用的JavaFX布局容器。VBox按照垂直方向排列组件,HBox按照水平方向排列组件。这两种布局容器可以灵活地组合使用,以满足不同场景下的需求。

2.2 GridPane布局

GridPane是一个网格布局容器,通过行和列的方式来定位和布局组件。使用GridPane可以实现复杂的界面布局,如表格、网格等。

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;

public class GridPaneLayoutDemo extends Application {

    @Override
    public void start(Stage primaryStage) {
        primaryStage.setTitle("GridPane布局示例");

        GridPane gridPane = new GridPane();
        Button button1 = new Button("按钮1");
        Button button2 = new Button("按钮2");
        Button button3 = new Button("按钮3");

        gridPane.add(button1, 0, 0);
        gridPane.add(button2, 1, 0);
        gridPane.add(button3, 0, 1);

        Scene scene = new Scene(gridPane, 300, 200);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

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

2.3 BorderPane布局

BorderPane是一种边界布局容器,将组件分为上、下、左、右和中五个区域。这种布局方式是响应式的,根据窗口大小自动调整组件的尺寸和位置。

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;

public class BorderPaneLayoutDemo extends Application {

    @Override
    public void start(Stage primaryStage) {
        primaryStage.setTitle("BorderPane布局示例");

        BorderPane borderPane = new BorderPane();
        Button button1 = new Button("按钮1");
        Button button2 = new Button("按钮2");
        Button button3 = new Button("按钮3");

        borderPane.setTop(button1);
        borderPane.setLeft(button2);
        borderPane.setCenter(button3);

        Scene scene = new Scene(borderPane, 300, 200);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

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

三、JavaFX布局代码实例

下面,我们将结合代码示例来展示JavaFX布局容器的用法。

java
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;

public class JavaFXLayoutDemo extends Application {

    @Override
    public void start(Stage primaryStage) {
        primaryStage.setTitle("JavaFX布局示例");

        HBox hbox = new HBox();
        Button button1 = new Button("按钮1");
        Button button2 = new Button("按钮2");
        Button button3 = new Button("按钮3");

        hbox.getChildren().addAll(button1, button2, button3);

        Scene scene = new Scene(hbox, 300, 200);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

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

在上面的代码示例中,我们创建了一个HBox布局容器并添加了三个按钮。通过Scene对象和Stage对象将布局容器显示在窗口中。

四、总结与展望

通过本文的介绍和代码示例,我们了解了JavaFX布局的原理和常用布局容器的使用方式。JavaFX提供了丰富的布局选项,可以满足各种不同的应用场景。希望读者能够通过本文对JavaFX布局有更深入的了解,并在实际项目中灵活运用。
在这里插入图片描述

结语:

JavaFX布局是设计和开发用户界面的重要一环,良好的布局设计能够提高用户体验和界面美观度。通过对JavaFX布局容器的理解和掌握,您将能够更加灵活地设计和实现各种复杂的用户界面。希望本文对您有所帮助,谢谢阅读!

以上就是关于JavaFX布局的详解与代码实例,希望对您有所帮助。如有任何疑问,请随时向我提问。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/713420.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SFP6012-ASEMI代理MHCHXM(海矽美)二极管SFP6012

编辑:ll SFP6012-ASEMI代理MHCHXM(海矽美)二极管SFP6012 型号:SFP6012 品牌:MHCHXM(海矽美) 封装:TO-247AB 恢复时间:≤75ns 正向电流:30A 反向耐压&a…

Excel表格转换

原始数据 1部 2部 3部 4部 5部 6部 7部 8部 9部 郈思 王瑾 郈思 许嘉 郈思 施眉 郈思 王瑾 郈思 许嘉 郈思 许嘉 吕倩倩 孙帮菊 夏侯瑾 孙帮菊 吕倩倩 孙痴梦 孙帮菊 姜佳 王瑾 孙痴梦 王瑾 许嘉 施眉 施眉 杨婕 施眉 施眉 孙帮菊 杨孝洁 施眉 吕倩倩 孙痴梦 郈思 夏侯瑾 李文…

NR 吞吐量测试

前言 参考文档: 5G NR TBS (Transport Block size) Calculator | 5G-Tools.com 5G NR Transport Block Size (TBS) Calculation - Techplayon 5G MCS _ 搜索结果_哔哩哔哩_Bilibili 4/5G无线资源和数据调度流程:CQI上报、基站AMC调度、调度信息DCI下发、CQI到MCS的对…

网络控制地址转换管理技术

网络控制&地址转换&管理技术 一、网络控制技术ACL1.1、ACL应用场景1.2、ACL分类1.3、ACL规则1.4、基本ACL配置1.5、高级ACL配置1.6、总结 二、网络地址转换NAT2.1、NAT应用场景2.2、静态NAT2.3、静态NAT配置2.4、动态NAT2.5、动态NAT配置12.6、动态NAT配置22.7、NAPT2.…

【C语言督学训练营 第十六天】考研中常考的排序大题(上)---- 冒泡排序、插入排序、快速排序

文章目录 前言经典的冒泡插入排序快速排序 前言 今天要介绍的部分是排序算法,在很久很久之前学习过十大排序,当时自我感觉非常良好,知道今天才知道我认为的大错特错。有些排序算法会考代码题,有些只会考小题只需要理解思想即可&a…

火山引擎DataLeap数据质量解决方案和最佳实践(二):解决方案

更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 DataLeap流批数据质量解决方案 产品功能架构 火山引擎DataLeap流批数据质量解决方案有 4 个大的功能: 离线数据质量监控:解决批和微批监控…

Spring Boot 中的 CD 工具

Spring Boot 中的 CD 工具 在现代软件开发中,持续交付(Continuous Delivery,简称 CD)已经成为了一个非常重要的开发模式。CD 工具可以帮助我们自动化构建、测试、部署和发布软件,提高软件交付的速度和质量。在 Spring…

接口增量改动,研发经常忘通知测试,如何解决?

不知道大家有没有同感,做接口测试麻烦的不是测试本身,而是接口它会变,更麻烦的不是接口变了,而是它变了而你不知道。等到你测完,开发才悠悠跟你说 ——“那个接口我改了点东西,你再看一眼哈”。 我那是看一…

el-menu嵌套路由高亮

1、配置路由 2、一级导航页面配置 计算属性定义方法 3、二级导航页面

mysql知识点总结

MySQL的binlog有有几种录入格式?分别有什么区别? 有三种格式,statement,row和mixed. statement模式下,记录单元为语句.即每一个sql造成的影响会记录.由于sql的执行是有上下文的,因此在保存的时候需要保存相关的信息,同时还有一些使用了函数之类的语句无法被记录复制. row级别…

环境变量编程

问题 main 函数 (默认进程入口) int main(int argc, char* argv[], char* env[]) argc - 命令行参数个数argv[] - 命令行参数数组env[] - 环境变量数组 (最后一个元素为 NULL) 什么是环境变量? 环境变量是进程运行过程中可能用到的 "键值对" (NAME VA…

使用Bert,ERNIE,进行中文文本分类

GitHub - 649453932/Bert-Chinese-Text-Classification-Pytorch: 使用Bert,ERNIE,进行中文文本分类使用Bert,ERNIE,进行中文文本分类. Contribute to 649453932/Bert-Chinese-Text-Classification-Pytorch development by creatin…

centos通过源文件的方式安装node-red

centos通过源文件的方式安装node-red 一、下载源文件1.1 查看系统信息1.2 下载 二、安装配置2.1 安装nodejs2.2 安装node-red 三、pm2管理node-red进程3.1 pm23.2 node-red设置开机自启动 四、更多 [回到目录] 一、下载源文件 1.1 查看系统信息 查看你的Linux系统是32位还是6…

三、1如何运用设计原则之SOLID原则写出高质量代码?

你好我是程序员雪球。接下来我们学习一些经典的设计原则。其中包括SOLID,KISS,YAGNI,DRY,LOD等。其实这些设计原则从字面意思理解并不难。但是“看懂”和“会用”是两回事,而“用好”就难上加难了。 先来了解SOLID原则…

EMC学习笔记(十三)背板的EMC设计

背板的EMC设计 1.背板槽位的排列1.1 单板信号的互联要求1.2 单板板位结构1.2.1 板位结构影响1.2.2 板间互联电平、驱动器件的选择 2.背板的EMC设计2.1 接插件的信号排布与EMC设计2.1.1 接插件的选型2.1.2 接插件模型与针信号排布 2.2 阻抗匹配2.3 电源、地分配 1.背板槽位的排列…

深度学习的技术原理

目录 人工智能 深度学习的应用场景 神经网络 卷积神经网络(CNN) 一个神经网络运行的可视化展示 人工智能 信息技术是人类历史上的第三次工业革命, 计算机、 互联网、智能家居等技术的普及极大地方便了人们的日常生活。 通过编程的方式&…

xshell安装jdk1.8环境

xshell安装jdk1.8环境 大家好,今天我们来学习一下xshell安装jdk1.8环境,好好看,好好学,超详细的 第一步 进入xshell官网下载 第二步 打开xshell新建一个会话,如下图: 第三步 输入你的名称、主机ip、端口号(…

Nginx负载均衡与动静分离

一、Nginx负载均衡: 1.概述: Nginx是一款http服务器软件,支持高达50000个并发连接数的响应。 (1)拥有强大的处理静态资源的能力。 (2)运行稳定。 (3)CPU&#xff0c…

nginx+tomcat负载均衡和动静分离

目录 1.部署nginx 2.部署两台tomcat 3.配置nginx 1.部署nginx vim /vim/lib/systemd/system/nginx.service 2.部署两台tomcat 进入第一台装第一个tomcat vim /etc/profile vim /usr/local/tomcat/webapps/test/index.jsp 重启 进入第二台安装第二台tomcat vim /usr/local/tom…

【电路原理学习笔记】第2章:电压、电流和电阻:2.1 原子结构

第2章:电压、电流和电阻 2.1 原子结构 元素:不能用化学方法分解成更简单形式的物质称为元素。原子:原子是体现元素特性的最小粒子。原子核:原子核由质子和中子组成,质子带有正电荷,中子呈中性。电子带有负…