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>
目录
相关文章
|
云计算 项目管理 云安全
附PPT下载 | 小邪:新基建之云上IT研发路 - 基于云架构的研发模式演进
企业的数字化上云已经成为社会共识。5G、工业互联网、人工智能、云计算作为数字经济的主要基础设施,将成为中国新基建的主要内容。云将给IT部门及IT人员带来研发运维方面的革命性的变化与冲击。本次分享将由阿里巴巴集团副总裁、云智能基础产品事业部负责人蒋江伟为大家介绍阿里巴巴面向互联网、面向云的研发模式的演
1769 0
|
20天前
|
SQL 安全 网络安全
从漏洞到攻击链:一次看懂黑客的思维链路
从漏洞到攻击链:一次看懂黑客的思维链路
116 4
|
11月前
|
人工智能 安全 算法
多端融合,打造最优落地效果的多模态百炼
本次分享由阿里云智能集团专家介绍多端融合的多模态百炼,涵盖七个方面:1)如何打造最优效果的多模态百炼;2)最新版本在生产力和产品力建设上的进展;3)rap能力升级;4)终端大模型场景探索与实践;5)内容安全工作;6)模型能力增强及生态应用;7)终端模型结合的消费链及手机、PC、车机器人等能力。重点介绍了百炼在多模态模型、效果运营中心、终端AI结合云端AI等方面的创新与优化,以及在内容安全和生态建设中的努力。
556 18
|
10月前
|
算法
基于排队理论的客户结账等待时间MATLAB模拟仿真
本程序基于排队理论,使用MATLAB2022A模拟客户结账等待时间,分析平均队长、等待时长、不能结账概率、损失顾客数等关键指标。核心算法采用泊松分布和指数分布模型,研究顾客到达和服务过程对系统性能的影响,适用于银行、超市等多个领域。通过仿真,优化服务效率,减少顾客等待时间。
240 33
|
数据采集 人工智能 自然语言处理
关于大模型语料的迷思
随着大模型发展的不断深入,我们越来越关注到语料质量对模型能力的影响,语料中的偏差和主观性会导致生成内容不准确或带有偏见。智能引擎事业部是阿里内部深耕多年的AI工程团队,为内部业务提供了完整的大模型工程体系,持续关注大模型训推性能、成本、研发范式等关键问题。本文将基于我们的思考,探讨大模型语料的复杂性及其背后的思维过程。
|
自然语言处理 数据可视化 数据安全/隐私保护
基于qwen2.5 Instruct的智能法庭预研
基于Qwen-2.5 Instruct的大模型智能法庭预研,旨在通过智能化手段提高庭审效率、确保司法公正、降低运营成本。核心功能涵盖智能庭审助手、文书生成、案件检索与分析及智能协作平台,利用自然语言处理、多模态融合等技术,实现庭审记录实时生成、法律条款动态匹配、证据多维度解析等,服务于民事、刑事及行政案件。项目注重数据安全与隐私保护,同时规划了智能仲裁平台、跨区域法庭协作等未来扩展方向,为构建高效、公正的智慧司法体系奠定基础。
344 0
|
Windows
vscode 终端无法执行npm、cnpm命令的解决办法,npm : 无法将“npm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试
vscode 终端无法执行npm、cnpm命令的解决办法,npm : 无法将“npm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试
7247 0
|
机器学习/深度学习 算法 数据可视化
YOLO+混合注意力机制 | YOLOv5再加4.3%才可以做对手,Transformer混合设计依旧可以卷
YOLO+混合注意力机制 | YOLOv5再加4.3%才可以做对手,Transformer混合设计依旧可以卷
529 0
|
缓存 API
FreeMarker - 配置参数用法说明
FreeMarker - 配置参数用法说明
395 0