0

0

使用 javafx 的 java 库

WBOY

WBOY

发布时间:2024-02-22 12:25:05

|

691人浏览过

|

来源于stackoverflow

转载

php小编苹果为您带来关于使用javafx的java库的问答内容。javafx是java平台上的现代图形用户界面工具包,为开发人员提供了丰富的图形化应用程序开发功能。本文将回答关于javafx库的使用问题,帮助您更好地利用javafx进行开发。让我们一起来探索javafx库的奥秘吧!

问题内容

简单描述:

如何创建一个使用 javafx 窗口的 java 库(该库具有绘图功能,能够创建弹出窗口),而无需扩展 application javafx 类的类,以及如何发送使用我的创建的应用程序作为 fatjar 的库?

完整描述:

我正在开发一个数据帧库,因为我需要一个可序列化的表/数据帧。我没有找到任何实现可序列化的java数据帧库。我的图书馆快完成了。主要逻辑工作完美等。我的库将具有绘图函数来绘制表数据。我已经通过“chart-fx”库实现了此功能。我创建了一个起点类(“具有静态主函数的类”)来测试我的库并查看绘图是否正常。在 intellij ide 中执行时一切运行良好。但是当我在maven中生成一个包(fatjar)并运行生成的jar时,我收到错误:“java.lang.unsupportedoperationexception:无法解析'fa-arrows-alt'”。 我认为在我的库的实现中最奇怪的事情是,当我开发一个库而不是一个应用程序时,我在创建 javafx 应用程序时没有遵循标准线,即创建一个扩展 application 类的类javafx。 相反,我使用静态方法“platform.startup(“这里带有我的javafx代码的lambda函数”)”。 下面是使用“-dprism.verbose=true”选项运行生成的 fatjar 时的控制台日志。

jan. 25, 2024 3:55:38 PM com.sun.javafx.application.PlatformImpl startup
WARNING: Unsupported JavaFX configuration: classes were loaded from 'unnamed module @3b192d32'
Prism pipeline init order: d3d sw
Using Double Precision Marlin Rasterizer
Using dirty region optimizations
Not using texture mask for primitives
Not forcing power of 2 sizes for textures
Using hardware CLAMP_TO_ZERO mode
Opting in for HiDPI pixel scaling
Prism pipeline name = com.sun.prism.d3d.D3DPipeline
Loading D3D native library ...
        succeeded.
D3DPipelineManager: Created D3D9Ex device
Direct3D initialization succeeded
(X) Got class = class com.sun.prism.d3d.D3DPipeline
Initialized prism pipeline: com.sun.prism.d3d.D3DPipeline
Maximum supported texture size: 16384
Maximum texture size clamped to 4096
OS Information:
        Windows version 10.0 build 19042
D3D Driver Information:
        NVIDIA GeForce GT 710
        \.DISPLAY1
        Driver nvldumdx.dll, version 27.21.14.5671
        Pixel Shader version 3.0
        Device : ven_10DE, dev_128B, subsys_118B10DE
        Max Multisamples supported: 4
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
java.lang.UnsupportedOperationException: Cannot resolve 'fa-arrows-alt'
        at org.kordamp.ikonli.AbstractIkonResolver.resolve(AbstractIkonResolver.java:61)
        at org.kordamp.ikonli.javafx.IkonResolver.resolve(IkonResolver.java:73)
        at org.kordamp.ikonli.javafx.FontIcon.setIconLiteral(FontIcon.java:251)
        at org.kordamp.ikonli.javafx.FontIcon.<init>(FontIcon.java:92)
        at io.fair_acc.chartfx.plugins.Zoomer.getZoomInteractorBar(Zoomer.java:421)
        at io.fair_acc.chartfx.plugins.Zoomer.<init>(Zoomer.java:148)
        at io.fair_acc.chartfx.plugins.Zoomer.<init>(Zoomer.java:252)
        at io.fair_acc.chartfx.plugins.Zoomer.<init>(Zoomer.java:243)
        at sst.visualization.chartFxBased.LineChart.lambda$plot$1(LineChart.java:85)
        at com.sun.javafx.application.PlatformImpl.lambda$startup$5(PlatformImpl.java:294)
        at com.sun.glass.ui.Application.invokeAndWait(Application.java:470)
        at com.sun.javafx.tk.quantum.QuantumToolkit.runToolkit(QuantumToolkit.java:377)
        at com.sun.javafx.tk.quantum.QuantumToolkit.lambda$startup$10(QuantumToolkit.java:290)
        at com.sun.glass.ui.Application.lambda$run$1(Application.java:155)
        at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
        at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:185)
        at java.base/java.lang.Thread.run(Thread.java:1583)
 vsync: true vpipe: true

我尝试过的事情:

1 - 使用“--module-path”和“--add-modules”运行我的程序。完整控制台命令:“java --module-path c:/javafx-jmods --add-modules javafx.base -jar sst-0.0.1.0-withdependency.jar”。将“javafx.base”更改为另一个模块名称时,我收到“module javafx.base not found”错误。

2 - 将“javafx-maven-plugin”添加到我的 pom.xml 中。好像没有效果。

我的想法:

我记得几天前我创建了一个 javafx 应用程序,它扩展了已运行的应用程序类 i。

吐司AI
吐司AI

超多功能的免费在线生图网站!拥有全网更齐全的模型库,0门槛使用!

下载

立即学习Java免费学习笔记(深入)”;

替代问题:

因为我对“platform.startup”的用法感到奇怪,所以告诉我这是否是创建不是应用程序的javafx图的正确方法(在屏幕上创建弹出窗口的通用东西)。因为关于 javafx 的几乎一切都很复杂,更侧重于应用程序。我什至不确定 javafx 的安装。我不想做一门课程,甚至不想读书,不想浪费一个月的学习时间来学习我做过的事情(绘制我的数据框图表)。

解决方法

当使用javafx到非应用程序时,可以使用“Platform.startup”静态方法。您可以将 Maven 依赖项添加到您的 pom 中,而无需安装 javafx 的 .jmods 或使用 java 模块系统。

特别是对于“chart-fx”库使用的库“ikonli”,会导致在生成 fatJar 时替换依赖项服务的问题(“位于 META-INF/jar 服务中的文件”)。为了避免替换服务文件并合并它们,需要添加特定的 maven resource transformerServiceResourceTransformer”,以便在需要时合并服务内容。

学到的东西:

  1. 不需要使用模块化系统来与 javaFX 配合使用,也不需要拥有 javaFX sdk 或 jmods。
  2. fatJar 可能不是传送 Java 应用程序的最安全方式,因为资源和文件之间始终存在冲突的风险。

感谢: @Sedj601、@jwelsea 和 @Slaw 寻求帮助。

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
Java Maven专题
Java Maven专题

本专题聚焦 Java 主流构建工具 Maven 的学习与应用,系统讲解项目结构、依赖管理、插件使用、生命周期与多模块项目配置。通过企业管理系统、Web 应用与微服务项目实战,帮助学员全面掌握 Maven 在 Java 项目构建与团队协作中的核心技能。

0

2025.09.15

resource是什么文件
resource是什么文件

Resource文件是一种特殊类型的文件,它通常用于存储应用程序或操作系统中的各种资源信息。它们在应用程序开发中起着关键作用,并在跨平台开发和国际化方面提供支持。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

180

2023.12.20

pdf怎么转换成xml格式
pdf怎么转换成xml格式

将 pdf 转换为 xml 的方法:1. 使用在线转换器;2. 使用桌面软件(如 adobe acrobat、itext);3. 使用命令行工具(如 pdftoxml)。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1945

2024.04.01

xml怎么变成word
xml怎么变成word

步骤:1. 导入 xml 文件;2. 选择 xml 结构;3. 映射 xml 元素到 word 元素;4. 生成 word 文档。提示:确保 xml 文件结构良好,并预览 word 文档以验证转换是否成功。想了解更多xml的相关内容,可以阅读本专题下面的文章。

2119

2024.08.01

xml是什么格式的文件
xml是什么格式的文件

xml是一种纯文本格式的文件。xml指的是可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。想了解更多相关的内容,可阅读本专题下面的相关文章。

1167

2024.11.28

lambda表达式
lambda表达式

Lambda表达式是一种匿名函数的简洁表示方式,它可以在需要函数作为参数的地方使用,并提供了一种更简洁、更灵活的编码方式,其语法为“lambda 参数列表: 表达式”,参数列表是函数的参数,可以包含一个或多个参数,用逗号分隔,表达式是函数的执行体,用于定义函数的具体操作。本专题为大家提供lambda表达式相关的文章、下载、课程内容,供大家免费下载体验。

215

2023.09.15

python lambda函数
python lambda函数

本专题整合了python lambda函数用法详解,阅读专题下面的文章了解更多详细内容。

192

2025.11.08

Python lambda详解
Python lambda详解

本专题整合了Python lambda函数相关教程,阅读下面的文章了解更多详细内容。

61

2026.01.05

Go高并发任务调度与Goroutine池化实践
Go高并发任务调度与Goroutine池化实践

本专题围绕 Go 语言在高并发任务处理场景中的实践展开,系统讲解 Goroutine 调度模型、Channel 通信机制以及并发控制策略。内容包括任务队列设计、Goroutine 池化管理、资源限制控制以及并发任务的性能优化方法。通过实际案例演示,帮助开发者构建稳定高效的 Go 并发任务处理系统,提高系统在高负载环境下的处理能力与稳定性。

4

2026.03.10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号