JavaFx基础学习【五】:FXML布局文件使用

这篇具有很好参考价值的文章主要介绍了JavaFx基础学习【五】:FXML布局文件使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

前言

一、介绍

二、简单体验

三、FXML标签元素

四、fx属性介绍

五、重写initialize(名字需要保持一致)方法

六、Scene Builder快速布局


前言

如果你还没有看过前面的文章,可以通过以下链接快速前往学习:

JavaFx基础学习【一】:基本认识_明天再去学习的博客-CSDN博客

JavaFx基础学习【二】:Stage_明天再去学习的博客-CSDN博客 

JavaFx基础学习【三】:Scene_明天再去学习的博客-CSDN博客 

JavaFx基础学习【四】:UI控件的通用属性_明天再去学习的博客-CSDN博客 

一、介绍

FXML是一种在JavaFX应用程序中定义用户界面的,基于XML的声明性标记语言。FXML非常适用来静态布局,如表单、控件和表格。

如果你还不是不明白FXML到底是什么,你可以类比HTML,我们可以通过HTML来做web页面的UI,同理,我们就可以使用FXML来做JavaFx应用程序的UI。

二、简单体验

1、在resource文件夹下建立一个hello-view.fxml文件,内容如下:

<?xml version="1.0" encoding="UTF-8"?>

<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>

<AnchorPane xmlns="http://javafx.com/javafx"
            xmlns:fx="http://javafx.com/fxml">

    <Button>我是一个按钮</Button>

</AnchorPane>

2、启动类

public class HelloApplication extends Application {
    @Override
    public void start(Stage stage) throws IOException {
        System.out.println(getClass());

        Pane root = FXMLLoader.load(getClass().getResource("test.fxml"));

        Scene scene = new Scene(root, 320, 240);


        stage.setTitle("Hello!");
        stage.setScene(scene);
        stage.show();
    }

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

3、效果

JavaFx基础学习【五】:FXML布局文件使用,java,javafx,学习,java,ui

三、FXML标签元素

1、import标签

<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>

如果我们需要使用某一个类,那么我们就要将这个类导入,就像我们的java文件中的import一样

2、布局标签

<AnchorPane xmlns="http://javafx.com/javafx"
            xmlns:fx="http://javafx.com/fxml">


</AnchorPane>

该布局标签还有一个属性”fx:controller“,用于指定事件处理控制器,后续将会介绍,还有一些其他属性比如fx:id,fx:value,fx:constant,fx:factory,感兴趣的可以自行了解

在该布局标签中,可以使用如Button、Label等其他子标签

四、fx属性介绍

1、fx:id,用于指定标签的id,通过该id,我们便能够找到该标签

<Button fx:id="myBtn">我是一个按钮</Button>

2、fx:controller,用于指定事件处理控制器,我们可以给Pane指定一个事件处理控制器,这样我们就可以在该事件处理器中,定义各种事件处理

1)创建一个事件控制器,给按钮添加一个点击事件

public class TestController {

    @FXML
    private Button myBtn;

    @FXML
    protected void onHelloButtonClick() {
        System.out.println("按钮被点击了");
        myBtn.setPrefWidth(150);
    }

}

在此处,我们的按钮名称属性保持与FXML按钮标签中的fx:id一致,再给属性添加@FXML注解,该按钮属性将会与我们的FXML文件中的按钮保持联系

同时,我们在该类中定义好各种事件,再给FXML按钮添加事件方法,将会生效,FXML按钮方法回填:

<Button fx:id="myBtn" onAction="#onHelloButtonClick">我是一个按钮</Button>

当我们点击按钮,就能够看到控制台打印文字,也能看到按钮宽度变长(与上图对比):

JavaFx基础学习【五】:FXML布局文件使用,java,javafx,学习,java,ui

2)先指定一个事件控制器

<AnchorPane xmlns="http://javafx.com/javafx"
            xmlns:fx="http://javafx.com/fxml" 
            fx:controller="com.example.javafxlearn.TestController">

    <Button fx:id="myBtn">我是一个按钮</Button>

</AnchorPane>

五、重写initialize(名字需要保持一致)方法

public class TestController {

    @FXML
    private Button myBtn;

    @FXML
    protected void onHelloButtonClick() {
        System.out.println("按钮被点击了");
        myBtn.setPrefWidth(150);
    }

    public void initialize(){
        System.out.println("组件初始化结束,可以进行初始化数据");
    }

}

我们可以重写initialize方法,该方法将会自动调用,在我们组件初始化完毕之后,我们可以做其他初始化操作,比如数据的加载之类的 

六、Scene Builder快速布局

你可以前往JavaFx官网进行下载,下载完之后可以通过拖拽的方式进行布局,此处就不介绍了,自行下载体验

JavaFx基础学习【五】:FXML布局文件使用,java,javafx,学习,java,ui

JavaFx基础学习【五】:FXML布局文件使用,java,javafx,学习,java,ui文章来源地址https://www.toymoban.com/news/detail-651969.html

到了这里,关于JavaFx基础学习【五】:FXML布局文件使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • GraalVM详细安装及打包springboot、java、javafx使用教程(环境安装篇)

    下一篇:GraalVM详细安装及打包springboot、java、javafx使用教程(打包普通JAVA项目篇) GraalVM是一款由Oracle公司开发的一款具有高效性能、降低基础设施成本、支持Java发展、与其他编程语言无缝集成、创建本机镜像等优点的跨平台虚拟机。它支持多种编程语言,如Java、JavaScript、Rub

    2024年04月26日
    浏览(39)
  • 使用javafx实现的基于udp、tcp的聊天GUI应用,可用作Java大作业、计网课程设计+视频演示

    点击这里下载源码 项目使用javafx作为ui开发平台,基于udp和tcp实现聊天功能。 支持同一网络环境内多设备聊天(测试了多台windows、mac设备通过有线和无线连接到一个局域网的情况)。 通信的流程可以简单描述为: 每个用户登录时会生成一个带uuid的用户信息 使用udp向局域网

    2024年02月04日
    浏览(47)
  • Java的Swing被JavaFX取代了

    JavaFX是Oracle在Java平台上推出的一种富客户端应用程序开发框架,它在功能和外观方面更加先进和强大,逐渐取代了过时的Swing框架。JavaFX提供了丰富的用户界面控件、布局容器、图形绘制、媒体播放和动画等功能,使得开发者能够更加轻松地构建现代化、交互式的桌面应用程

    2024年02月04日
    浏览(37)
  • 【面向对象程序设计】账户类(Java、JavaFX)

    目录 版本1: 设计Account1类,包含: 设计测试类ATMMachine1: 版本2: 扩展Account1类为Account2类:   设计测试类ATMMachine2,其主菜单如下: 版本3: uml啥的找不到了,太久远了,有什么不懂得评论或者私聊问我吧。 ■ 一个名为id 的int 类型的私有数据域(默认值为0),长度为6位

    2024年02月08日
    浏览(44)
  • Java 17 中找不到 JavaFX 的解决方法

    最近在学习 Paul Deitel 和 Harvey Deitel 编写的 Java 编程入门教材《Java: How to Program - Early Objects 11th Edition》 本书豆瓣页面链接 其中第 1 章第 1.10 节给出一个简易画板示例程序,是一个 JavaFX GUI 程序 其目录结构如下 按书上给的命令 javac *.java 编译时出现如下错误,编译失败 以上错

    2024年02月09日
    浏览(55)
  • javaFX安装及使用

    Jdk 从 1.8 开始 jdk 自带 JavaFX,到 Jdk 11 开始 jdk 不再内置 JavaFX,所以如果你使用的是高版本的 jdk 在使用 javaFX 的时候就需要先安装 javaFX,并在 idea 里进行配置。 本文主要是对高版本 jdk 安装配置 javaFX 进行讲解,在本文开始前,你的电脑安装的 jdk 版本应该大于等于 17 。 如果

    2024年02月06日
    浏览(42)
  • 如何简单的上手JavaFX17+?解决“缺少 JavaFX 运行时组件, 需要使用该组件来运行此应用程序”等问题

    JavaFX是一个Java的一个ui库,但是自从java8以后,它很悲惨的被从OpenJdk中移除了,因此我们使用它来进行开发时,如果我们使用的是8以后的版本,经常会遇到一些问题。这里针对新手做一个简单的引导(悲,也许根本没新手来学吧) Fx的入门并不复杂,如果你学过其他的Ui库或

    2024年02月02日
    浏览(56)
  • 详解Java实现2048小游戏(JavaFX,完整源码+注释说明)

    刚刚完成的一个小游戏,写文章记录一下,如果有任何错误或者可以改进的代码请提出 另一方面也是方便自己几个月或几年后忘记时,来这里翻一翻回顾思路 目录 基本界面: 类的组织: _CardPane: _CardMatrixPane: _CardColor: _GameMenuBar: _2048Demo: 基本思路: 卡片: 卡片矩阵:

    2024年02月03日
    浏览(55)
  • eclipse 配置使用 JavaFx (无需安装任何插件)

    偶尔编写个 JavaFx 的程序,网上搜了下 eclipse 开发 JavaFx 小程序,基本清一色的需要安装配置什么 e(fx)eclips 插件,或者配置其他什么东西,我也就写个小程序,有必要搞这么繁琐吗,JDK 不就有这玩意吗。下面教大家在 eclipse 中无需下载任何插件只需配置一下即可开发 JavaFx 小

    2024年02月04日
    浏览(48)
  • JAVAFX中ChoiceBox控件使用教程(用到scenebuilder)

    ChoiceBox控件负责选择合适的选项,单独使用JAVAFX很容易实现。但如果使用到scenebuiler,ChoiceBox控件操作则较为麻烦,为了学会这个控件的基本使用,我搜寻了很多资料,希望能帮到大家。控件效果展示如下。 首先放置控件至合适位置后,将生成的Controller类的代码复制至相应的

    2024年02月11日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包