我的编程空间,编程开发者的网络收藏夹
学习永远不晚

JavaFX爱好者看过来,这款工具值得拥有

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

JavaFX爱好者看过来,这款工具值得拥有

前言

       各位CSDN的博友们,随着各地政策的放开,大伙现在是在水深火热当中呢?还是天选打工人-安然无羊。在这里,希望阳了的朋友,赶紧恢复健康,早日康复。希望没有阳的朋友们,继续坚持,万一要阳,也一定要做一直美羊羊。

      之前因为工作需要,看了一些JavaFx的相关资料,也简单讲解了怎么开发JavaFx应用程序。感兴趣的朋友可以去之前的博客中找一找。JavaFx在Java开发当中确实属于小众的一类,不吹不黑。由于它的小众,在ui方面和快速开发方面,确实没有Web开发的框架那么多。相对于桌面应用来说,Web端的应用框架就比较多了,比如单体化的Bootstrap、Layui,流行的Vue和React等等框架都可以。本文分享一个基于JavaFx开发的比较好的集成框架,同时本身带了一些比较实用的应用,这个框架通过Jar包引入的方式进行解耦,实现了轻量化开发和集成。对于有需要的朋友,可以快速出成果是一个非常不错的基础框架。

一、初识xJavaFxTool

1、项目简介

       xJavaFxTool是使用javaFx开发的实用小工具集,利用业余时间把工作中遇到的一些问题总结起来,打包进小工具集中,供大家参考和使用,里面包含了javaFx的一些功能的示例,如布局、国际化、第三方UI库controlsfx、JFoenix等、外部jar包加载(插件机制)等一些常用功能,想学习javaFx的同学可以参考参考,学习javaFx的资料参考www.javafxchina.net,它是使用木兰宽松许可证的开源软件。xJavaTool的开源地址是:xJavaTool gitee地址

2、开发环境

       如果不是特别需要升级JDK,正常可以直接使用JDK1.8即可,xJavaTool最新版本是有升级到JDK17,无必要不升级。源码编译依赖如下

  1. 基于maven3.6.3构建
  2. 使用eclipase或Intellij Idea开发
  3. 本项目使用了lombok,在查看本项目时如果您没有下载lombok 插件,请先安装
  4. 依赖的xcore包已上传至git托管的maven平台,git托管maven可参考教程(若无法下载请拉取项目自行编译)。
  5. 使用javapackager插件进行打包操作(可打包windows、Linux、Mac安装包)
  6. 使用InnoSetup可进行制作windows安装包

3、源码目录说明

将代码clone到本地目录后,可以看到如下的工程:

99c12bc89f2747139d3f10fee2587aa8.png

 工程目录说明如下:

xJavaFxTool├─ images项目截图├─ pom.xmlmaven配置文件├─ README.md说明文件├─ class="lazy" data-src│  ├─ main│  │  ├─ java│  │  │  └─ com│  │  │   └─ xwintop│  │  │    └─ xJavaFxTool│  │  │     ├─ common第三方工具类│  │  │     ├─ controllerjavafx控制层│  │  │     │  └─ index首页控制层│  │  │     ├─ model基础bean类层│  │  │     ├─ services工具服务层│  │  │     │  └─ index首页工具服务层│  │  │     ├─ utils系统工具类│  │  │     └─ viewjavafx视图层│  │  │        └─ index首页工具视图层│  │  └─ resources│  │   ├─ com│  │   │  └─ xwintop│  │   │   └─ xJavaFxTool│  │   │    └─ fxmlView     .fxml文件│  │   ├─ config配置文件│  │   │  └─ toolFxmlLoaderConfiguration.xml系统菜单加载配置文件│  │   ├─ css样式资源│  │   ├─ images图片资源│  │   ├─ locale国际化│  │   ├─ banner.txt启动banner图片│  │   └─ logback.xmllogback日志配置文件│  └─ test  测试类│   ├─ java│   └─ resources

二、xJavaFxTool调试

1、入口函数

在IDE中打开Main.java代码,这是JavaFx应用程序的入口。

package com.xwintop.xJavaFxTool;import com.xwintop.xJavaFxTool.fxmlView.IndexView;import com.xwintop.xJavaFxTool.utils.StageUtils;import com.xwintop.xJavaFxTool.utils.XJavaFxSystemUtil;import com.xwintop.xcore.util.javafx.AlertUtil;import com.xwintop.xcore.util.javafx.JavaFxViewUtil;import de.felixroske.jfxsupport.AbstractJavaFxApplicationSupport;import de.felixroske.jfxsupport.GUIState;import de.felixroske.jfxsupport.SplashScreen;import javafx.application.Platform;import javafx.event.EventHandler;import javafx.scene.Scene;import javafx.scene.layout.AnchorPane;import javafx.stage.Stage;import javafx.stage.WindowEvent;import lombok.extern.slf4j.Slf4j;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.context.ConfigurableApplicationContext;@SpringBootApplication@Slf4jpublic class Main extends AbstractJavaFxApplicationSupport {    public static void main(String[] args) {        XJavaFxSystemUtil.initSystemLocal();//初始化本地语言        XJavaFxSystemUtil.addJarByLibs();//添加外部jar包        SplashScreen splashScreen = new SplashScreen() {            @Override            public String getImagePath() {                return "/images/javafx.png";            }        };        launch(Main.class, IndexView.class, splashScreen, args);//launchApp(Main.class, IndexView.class, args);    }    @Override    public void beforeInitialView(Stage stage, ConfigurableApplicationContext ctx) {        super.beforeInitialView(stage, ctx);        Scene scene = JavaFxViewUtil.getJFXDecoratorScene(stage, "", null, new AnchorPane());        stage.setScene(scene);        stage.setOnCloseRequest(new EventHandler() {            @Override            public void handle(WindowEvent event) {                if (AlertUtil.showConfirmAlert("确定要退出吗?")) {                    System.exit(0);                } else {                    event.consume();                }            }        });        GUIState.setScene(scene);        Platform.runLater(() -> {            StageUtils.updateStageStyle(GUIState.getStage());        });    }}

在这里定义了初始窗口引用的图片等资源,还定义了一个退出回调。

0f8161f9351c4c6b830d32bfdd116d41.png

 2、系统首页

      在系统首页中,内置了许多的功能,包含菜单管理、插件管理、系统设置等等。这里着重介绍一下这三个功能。

a87074f3b5fb4a078c02627ff3853294.png

 系统首页内置了一个WebView浏览器,可以打开Web界面。关键代码如下:

//public static final String QQ_URL = "https://support.qq.com/product/127577";public static final String QQ_URL = "https://blog.csdn.net/yelangkingwuzuhu?type=blog";        public static final String STATISTICS_URL = "https://xwintop.gitee.io/maven/tongji/xJavaFxTool.html";    private Map menuMap = new HashMap();    private Map menuItemMap = new HashMap();    private IndexService indexService = new IndexService(this);    private ContextMenu contextMenu = new ContextMenu();    @Override    public void initialize(URL location, ResourceBundle resources) {        this.bundle = resources;        initView();        initEvent();        initService();        initNotepad();        //this.indexService.addWebView("欢迎吐槽", QQ_URL, null);        this.indexService.addWebView("欢迎指导", QQ_URL, null);        this.tongjiWebView.getEngine().load(STATISTICS_URL);    }

      你可以进行深度定制。将默认的访问地址替换成企业的官方网站或者自己的博客地址。

3、插件集成

      在插件管理中,系统已经内置了很多丰富的插件,可以自由下载使用,还可以基于扩展规范,集成自己的扩展插件。具体的集成方法和开发方式放到下回讲解。

4f38b3cd3dd346e1826120ffb7b64240.png

 点击下载后,就可以直接使用了。这里演示一个系统信息的展示插件。

77528688a97042f182eca21b494d6b29.png

 其它更有意思的插件,可以关注开源网站进行获取学习。通过这种插件集成的方式极大的丰富了系统的应用模式。

三、总结

       以上就是本文的主要内容,本文分享了一款使用javaFx开发的实用小工具集xJavaFxTool,将很多的插件打包进小工具集中,供大家参考和使用,里面包含了javaFx的一些功能的示例,如布局、国际化、第三方UI库controlsfx、JFoenix等、外部jar包加载(插件机制)等一些常用功能,想学习javaFx的同学可以参考参考,学习javaFx的资料参考www.javafxchina.net,它是使用木兰宽松许可证的开源软件。心动不如行动,喜欢的朋友可以学习起来,给自己充电加油。

 

 

来源地址:https://blog.csdn.net/yelangkingwuzuhu/article/details/128410692

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

JavaFX爱好者看过来,这款工具值得拥有

下载Word文档到电脑,方便收藏和打印~

下载Word文档

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录