Java:JavaFX项目FXML文件应用实例

简介: Java:JavaFX项目FXML文件应用实例

布局文件和逻辑文件分离

可以使用 Scene Builder进行编辑

IDEA中使用scene builder

项目结构

── src   
    ├── com
    │   └── company
    │       ├── Controller.java   # 控制器文件
    │       ├── Main.java         # 主文件
    │       └── sample.fxml       # 布局文件
    └── style
        └── main.css               # 样式文件

1、主文件入口文件 Main.java

引入布局文件 sample.fxml

package com.company;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;


public class Main extends Application {

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

@Override
public void start(Stage primaryStage) throws Exception {
// 此处引入布局文件
Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
Scene scene = new Scene(root);
primaryStage.setScene(scene);
primaryStage.show();
}

}

2、布局文件 sample.fxml

(1)绑定控制器类 com.company.Controller

(2)绑定控制器文件中的方法 com.company.Controller.clickButton

(3)引入样式文件 style/main.css

<?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 prefHeight="400.0" prefWidth="600.0" stylesheets="@../../style/main.css" xmlns="http://javafx.com/javafx/8"; xmlns:fx="http://javafx.com/fxml/1"; fx:controller="com.company.Controller">
<children>
<Button layoutX="271.0" layoutY="165.0" mnemonicParsing="false" onAction="#clickButton" text="这是一个按钮" />
<Label fx:id="label" layoutX="308.0" layoutY="126.0" />
</children>
</AnchorPane>

3、Controller.java控制器文件

package com.company;

import javafx.scene.control.Label;

public class Controller {
public Label label;

public void clickButton(){
label.setText("按钮被点击了");
System.out.println("按钮被点击了");
}
}

4、样式css 文件

src/style/main.css

.label{
-fx-text-fill: red;
}

打包jar

IDEA 下操作

1、配置:

工具栏点击Project Structure -> Artifacts -> + ->

JAR -> From modules with dependencies 选中有main方法的类

2、打包:

Build -> Build artifacts

3、运行程序

文件夹 out/artifacts 中生成jar文件,双击即可打开

在装有jre 的 Mac和Windows 均可正常运行

            </div>
目录
相关文章
|
自动驾驶 定位技术 vr&ar
航空摄影测量设备科普
航空摄影测量设备科普
425 0
四步教你快速解决UE5文件迁移失败❗️
不知道大家在用UE5迁移文件时,有没有发现这个问题:如果文件输出的路径选择了非项目路径,那么UE会提示无法迁移。在UE4中,这样做是不存在问题的,只要选择「忽略」就可以继续完成。但UE5会一直提示此对话框,如果不能快速找到解决方法,是非常浪费大家时间的。与大家分享我们发现的四步快速解决UE5文件迁移报错的方法~
|
存储 安全 NoSQL
|
供应链 API UED
Pandabuy VS Hagobuy 淘宝代购集运系统巨头,类似软件如何开发?
Pandabuy & Hoobuy是知名的淘宝代购集运平台,它们提供一站式购物物流服务。开发此类系统涉及市场定位、API接口集成、供应链管理、平台设计、支付物流整合及用户体验优化。例如,通过c0b.cc/R4rbK2可获取API测试,而成功的系统需确保用户友好性、多语言支持、国际支付与物流追踪,同时提供客服以保证高满意度。
|
小程序
【支付宝商家助手】正式上线——随时随地移动管理 助力经营
【支付宝商家助手】正式上线——随时随地移动管理 助力经营
907 11
|
云安全 存储 弹性计算
阿里云产品试用图文教程及注意事项
阿里云产品可以免费试用,阿里云企业和个人用户都能申请,本文以个人用户申请试用云服务器ECS产品为例为大家展示阿里云产品试用图文教程及注意事项,来看看怎么申请免费试用到阿里云产品吧。
阿里云产品试用图文教程及注意事项
|
存储 Oracle 关系型数据库
OceanBase
OceanBase是一款高性能、低成本、高兼容、高可用的分布式关系型数据库,由蚂蚁集团和阿里巴巴自主研发,自2010年创始以来,一直致力于提供高效、稳定、可靠的数据存储和管理解决方案。该数据库采用了读写分离的架构,把数据分为基线数据和增量数据,其中增量数据放在内存里(MemTable),基线数据放在SSD盘(SSTable)。这种架构使得DML操作(数据修改)完全在内存中进行,性能非常高,对于需要快速响应的应用程序来说,这是一个非常重要的特点。
445 1
|
网络安全 Windows
阿里云服务器公网ip访问部署的JavaWeb项目
阿里云服务器公网ip访问部署的JavaWeb项目
360 0
|
JavaScript API
Vue3中无法为el-tree-select设置反选问题分析
Vue3中无法为el-tree-select设置反选问题分析
442 0
|
弹性计算
阿里云服务器IP地址查询方法
阿里云服务器IP地址查询方法,阿里云服务器IP地址在哪查看?在云服务器ECS管理控制台即可查看,阿里云服务器IP地址包括公网IP和私有IP,阿里云百科分享阿里云服务器IP地址查询方法
689 0