用于桌面应用程序的 Swing 与 JavaFx [关闭]

2023-12-06

我有一个非常大的程序,当前正在使用 SWT。该程序可以在Windows、Mac和Linux上运行,它是一个包含很多元素的大型桌面应用程序。 现在 SWT 有点老了,我想切换到 Swing 或 JavaFX。我想听听您对三件事的想法。

我主要关心的是桌面 GUI 应用程序什么更好? (我在网上查了一下,很多人认为 JavaFX 和 Swing 一样好,但除了简单的观点争论之外,我没有看到很多有效的论据)。它必须能够在 Windows、Mac 和一些流行的 Linux 发行版上运行。

  • 什么会更干净、更容易维护?

  • 从头开始构建什么会更快?

我在我的应用程序中使用 MVC 方法,如果这有任何帮助的话。


什么会更干净、更容易维护?

在所有条件相同的情况下,可能是 JavaFX - API 在组件之间更加一致。然而,这更多地取决于代码是怎么写的而不是用什么库来写的.

从头开始构建什么会更快?

高度依赖于您正在构建的内容。 Swing 有更多组件(第三方组件和内置组件),但并非所有组件都已进入较新的 JavaFX 平台,因此,如果您需要一些东西,可能需要重新发明轮子。有点定制。另一方面,如果您想做转场/动画/视频内容,那么在 FX 中这要容易几个数量级。

另一件需要记住的事情是(也许)外观和感觉。如果您绝对必须拥有默认的系统外观和感觉,那么 JavaFX(目前)无法提供此功能。对我来说并不是什么大的必需品(无论如何我更喜欢默认的 FX 外观),但我知道有些政策强制要求对系统样式进行限制。

就我个人而言,我认为 JavaFX 是“崭露头角”的 UI 库,但它并不是quite还存在(但不仅仅是可用),而 Swing 作为边缘遗留的 UI 库,目前功能齐全并受支持,但在未来几年可能不会那么多(因此 FX 很可能会在某个点。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用于桌面应用程序的 Swing 与 JavaFx [关闭] 的相关文章

  • java程序有多少种结束方式?

    我知道使用 System exit 0 可以结束一个java程序 例如 如果我有一个JFrame窗口 它会关闭并结束程序 但我想知道还有多少其他方法 可以关闭它并结束程序 包括发生错误时 程序会被关闭 JFrame也会被关闭吗 添加到其他答
  • 如何以编程方式使用包含多列的 where-in 子句执行 PostgreSQL 查询?

    我的查询是这样的 select from plat customs complex where code t code s in 01013090 10 01029010 90 它在 psql 控制台中运行良好 我的问题是如何在客户端代码中
  • 以相反的顺序打印任何集合中的项目?

    我在 使用 Java 进行数据结构和问题解决 一书中遇到以下问题 编写一个例程 使用 Collections API 以相反的顺序打印任何 Collection 中的项目 不要使用 ListIterator 我不会把它放在这里 因为我想让有
  • Java LostFocus 和 InputVerifier,按反向制表符顺序移动

    我有一个 GUI 应用程序 它使用 InputVerifier 在产生焦点之前检查文本字段的内容 这都是很正常的 然而 昨天发现了一个问题 这似乎是一个错误 但我在任何地方都找不到任何提及它的地方 在我将其报告为错误之前 我想我应该问 我在
  • 查看Java Agent修改的Java类的源代码

    我需要了解 Java 代理如何修改我的初始类 以便我能够理解代码的作用 build gradle configurations jar archiveName agent2 jar jar manifest attributes Prema
  • 无法使用 datastax java 驱动程序通过 UDT 密钥从 cassandra 检索

    我正在尝试使用用户定义的类型作为分区键将对象存储在 cassandra 中 我正在使用 datastax java 驱动程序进行对象映射 虽然我能够插入到数据库中 但无法检索该对象 如果我更改分区键以使用非 udt 例如文本 我就能够保存和
  • 为什么用scala写的代码比用java写的慢6倍?

    我不确定我在编写 scala 代码时是否犯了一些错误 问题是 The four adjacent digits in the 1000 digit number that have the greatest product are 9 9
  • 如何在 WPF 应用程序中实现气球消息

    我们想使用气球消息 如UX Guide http msdn microsoft com en us library aa511451 aspx来自微软 我发现一些示例使用 Windows 窗体中的本机代码 但本机代码需要组件的句柄 这对于
  • Mockito 和 Hamcrest:如何验证 Collection 参数的调用?

    我遇到了 Mockito 和 Hamcrest 的泛型问题 请假设以下界面 public interface Service void perform Collection
  • 使用 JDBC 连接到 PostgreSql 的本地实例

    我在 Linux 机器上有一个正在运行的 PostgreSql 本地实例 当我使用psql来自 shell 的命令我成功登录 没有任何问题 我需要通过 JDBC 连接到 PostgreSql 但我不知道我到底应该传递什么url参数为Driv
  • 无需递归即可对可观察结果进行分页 - RxJava

    我有一个非常标准的 API 分页问题 您可以通过一些简单的递归来处理 这是一个捏造的例子 public Observable
  • 在java程序中使用c++ Dll

    我正在尝试使用System LoadLibrary 使用我用 C 编写的一个简单的 dll UseDllInJava java import com sun jna Library import com sun jna Native imp
  • Joshua Bloch 的构建器设计模式有何改进?

    早在 2007 年 我就读过一篇关于 Joshua Blochs 所采用的 构建器模式 的文章 以及如何修改它以改善构造函数和 setter 的过度使用 特别是当对象具有大量属性 其中大部分属性是可选的 时 本文对此设计模式进行了简要总结
  • Java 8 Stream,获取头部和尾部

    Java 8 引入了Stream http download java net jdk8 docs api java util stream Stream html类似于 Scala 的类Stream http www scala lang
  • 文本视图不显示全文

    我正在使用 TableLayout 和 TableRow 创建一个简单的布局 其中包含两个 TextView 这是代码的一部分
  • Android计算两个日期之间的天数

    我编写了以下代码来查找两个日期之间的天数 startDateValue new Date startDate endDateValue new Date endDate long diff endDateValue getTime star
  • Spring Data Rest 多对多 POST

    首先 让我解释一下我的用例 这非常简单 有一个用户实体和一个服务实体 我使用 UserService 作为连接实体 连接表 在用户和服务之间建立多对多关联最初 会有一些用户集和一些服务集 用户可以在任何时间点订阅任何服务 在这种情况下 将向
  • 使用 Apache 允许 Glassfish 和 PHP 在同一服务器中协同工作

    是否可以建立从 Java 到 php 文件的桥梁 我有一个用 Java 编写的应用程序 我需要执行http piwik org http piwik org 这是用 PHP 编写的 在服务器中 我正在运行 PHP 但无法从浏览器访问 php
  • 检测到 JVM 正在关闭

    我有一个使用 addShutdownHook 处理 Ctrl C 的 Swing 应用程序 它工作正常 直到我的关闭任务之一调用一个在正常情况下更改 JLabel 文本的函数 此时它挂起 我认为问题是 Swing EDT 已终止或正在等待某
  • 什么是 Java2D 处理程序线程?

    我创建了一个使用 Hibernate 的示例 java 应用程序 当我进行线程转储时 我观察到一个名为 Java2D Disposer 的奇怪线程 有人能告诉我该线程的功能吗 AWT 系统中的某些实体需要最终确定以释放资源 最突出的例子是j

随机推荐

  • JXTreeTable 中的复选框

    仍然是一个 Java 新手 为了我自己的利益而试图做太高级的事情 尽管如此 这就是我需要做的 JXTreeTable 中的复选框 我的主要课程 package info chrismcgee sky production import in
  • XCode 4.5 中最新的 Clang 位置

    我已将 XCode 更新到 4 5 使用 iOS 6 并安装了最新的命令行工具 在此之前我总是有最新的 Clang 版本 Applications XCode app Contents Developer Platforms iPhoneO
  • 打包 URI 和路径无法解析 WPF 中的图像

    我有以下目录结构 Project Images view png control xaml 在控件中 我有一个由以下 XAML 定义的按钮
  • Xcode 15:未定义的符号:链接器命令失败,退出代码为 1(使用 -v 查看调用)

    升级到 Xcode 15 后 我的小部件扩展导致此错误 Undefined symbols Linker command failed with exit code 1 use v to see invocation 当按错误时 没有任何反
  • Google Play 服务的最新 com.google.android.gms 修订版 6

    我正在使用 Google Play 服务修订版 5 运行我的 Android Google 地图应用程序 它运行良好 我将 Google Play 服务从修订版 5 更新到修订版 6 现在它无法运行并产生此警告 Google Play se
  • 在 C# 中将 System.Web.UI.WebControls.Unit 转换为 int

    如何从 ASP NET 进行转换UnitC 中的结构体转换为 int 还是反向 单位类型有一个价值财产 这是一个 double 但如果需要 您可以将其转换为 int 铸造可能会导致精度损失 但您可能已经意识到这一点 要创建一个单位只需使用采
  • Netlink 导致内核恐慌

    I tried 这个程序 该程序向内核发送 hello 内核再次向用户空间回复 hello 我的要求 用户必须发送 hello 并且必须每2秒接收一次消息 我已经尝试过了 User app 添加发送和接收循环 define NETLINK
  • 线性数据库设计

    我有一个关于数据库关系的问题 我正在尝试建立一个具有以下规则的监控系统 Channels属于一个Sensor Sensors属于一个Device Devices属于一个Probe Probes属于一个Core 这是表格的预览 Cores P
  • Android Studio:如何使用 Gradle 生成签名的 APK?

    我在 Google 和 SO 上搜索过 但找不到我的答案 这是我第一次使用 Gradle 系统 我现在正在生成一个签名的 APK 以上传到 Google Play 项目是从 eclipse 导入的 现在 我已经阅读了这一部分here你应该添
  • 将图像从 iPhone 上传到 WCF 服务

    我正在尝试构建一个 iPhone 应用程序和 c WCF 服务来将图像上传到 SQL 服务数据库 我的应用程序将图像分解为 NSData 并使用以下代码发布到 WCF 服务 NSData imageData UIImageJPEGRepre
  • 带返回数据的 Flutter Back 按钮

    我有一个带有两个按钮的界面 可以弹出并返回 true 或 false 如下所示 onPressed gt Navigator pop context false 我需要调整应用栏中的后退按钮 以便它弹出并返回 false 有办法做到这一点吗
  • 数据注释/验证不适用于部分视图

    我根据用户输入在运行时加载了一些部分视图 Categories change function ajax url Product Create Categories option selected text replace s type G
  • 我们在哪里可以找到 Google 对象的未记录属性

    我知道自动完成有时可以帮助您找到 Google 对象的未引用方法 例如表格 API v4但我怎样才能找到属性 电子表格示例 function onEdit e Logger log e range columnStart returns t
  • 如何让p5.js在特定位置创建画布[重复]

    这个问题在这里已经有答案了 我现在在 HTML CSS 方面确实有 1 小时的经验 并且对编程 例如 Java 脚本 有更深入的理解 所以 如果我对如何在这里做某事的想法为零 请原谅我 我想创建我的 p5 画布 它也遵守我的 CSS 规则
  • 应用程序如何检测到它将被卸载? [复制]

    这个问题在这里已经有答案了 我们都知道 通常 实际上任何 防病毒应用程序在卸载之前都会触发简单的对话框 例如 您要卸载应用程序 确定吗 是 否 是的 我知道我可以使用意图过滤器拦截包删除意图 例如
  • Web客户端下载文件

    我有以下 PS 脚本来使用下载文件WebClient 下载链接位于文本文件中 下载有效 但是 我想确保不会覆盖重复的文件 因此我添加了额外的代码 该代码对于单个文件运行良好 但是 如果发现重复 则代码会因以下错误而中断 使用 2 个参数调用
  • 扩展 UILocalNotification

    我是 iOS 初学者 我尝试扩展 UILocalNotification 下面是我的班级 interface FSCustomNatification UILocalNotification typedef enum FSCustomNat
  • 如何访问 angular.dart 组件的属性或方法

    我定义了一个角度 dart 组件像这样 NgComponent selector dartcomp templateUrl dartComp html publishAs ctrl map const val val class DartC
  • 跳转目标与指令pc 0x400014高4位不同

    我正在处理我的 MIPS 分配 但收到此错误 跳转目标与指令 pc 0x400014 的高位 4 位不同 我想要一些帮助 您正尝试跳转到内存中当前 256MByte 区域之外的地址 看here 如果您需要帮助识别代码中的问题 您需要发布一些
  • 用于桌面应用程序的 Swing 与 JavaFx [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 我有一个非常大的程序 当前正在使用 SWT 该程序可以在Windows Mac和Linux上运行 它是一个包含很多元素的大型桌面应用程序 现在 SWT 有点老了 我想切换到 Swing 或