带有 SWING 与 JavaFX 的 Java 用户界面
Posted
技术标签:
【中文标题】带有 SWING 与 JavaFX 的 Java 用户界面【英文标题】:Java user interface with SWING vs JavaFX 【发布时间】:2014-06-03 20:51:19 【问题描述】:我知道这是一个简单的问题,但没有比堆栈溢出更好的问题了。我一直在开发一个 Java 桌面应用程序,它连接到远程数据库并使用大量 JTables 和 jasper 报告。当我必须开始考虑用户界面时,我已经到了这一点,我注意到我可以为此使用 JavaFX。根据我一直在做的一些研究,JavaFX 似乎提供了比 SWING 更好的用户界面。我的问题是,JavaFX 是否适合我的应用程序?当我的应用程序使用大量数据库查询、表格和 jasper 报告时,我可以使用它吗?还是我应该坚持使用 SWING?如果我应该使用 JavaFX,我应该从哪里开始构建一个应用程序,该应用程序使用 JavaFX 作为界面,使用 Java 作为幕后代码(书籍、网站)?谢谢。
【问题讨论】:
***.com/questions/16694948/… ***.com/questions/1318645/javafx-or-swing 这些链接很有用,但它们并没有解决我对数据库连接和 Jasper 报告的主要担忧。 我将链接更多地作为起点,直到出现对该主题更了解的人。 您能否澄清“使用了很多 JTables...我必须开始考虑用户界面”?JTable
是一个用户界面组件,因此如果您创建了 JTable
s,那么您已经开始构建 UI。
【参考方案1】:
对于出色的 GUI,我认为您应该使用 javafx。在 java 8 中,javafx 现在看起来更稳定了。 您可以对当前的 Swing 应用程序使用 javafx 控件。 关于数据库交互,如果您在任何表中有大量数据,请不要尝试将整个数据提取到 javafx tableview 控件,因为这会导致“内存不足”问题。始终在数据库中处理您的数据,不要给 JVM 带来负载。 所以对于批量数据,我建议你可以使用当前的 JTable 但是 javafx 很酷,你可以开始探索它。 从http://docs.oracle.com/javase/8/javase-clienttechnologies.htm开始吧
【讨论】:
【参考方案2】:在 JavaFX TableView 中显示数据库数据没有具体问题。
可能需要关注的一个领域是打印。我相信 Jasper 已经内置了打印 JTables 的东西,而 JTables 也有一个打印方法。打印多页 TableView 更复杂。
此外,如果您不能使用 Java 8,您将无法获得 API 的最新改进(例如与打印相关的)。
【讨论】:
【参考方案3】:JavaFx 肯定是未来的方向。但是:它仍然有很多错误,并且如果您尝试使用新内容重用相同的对象,则很容易使用 TableViews 造成内存泄漏。
【讨论】:
以上是关于带有 SWING 与 JavaFX 的 Java 用户界面的主要内容,如果未能解决你的问题,请参考以下文章