定期询问与此类似的问题,但其中许多答案都已过时。
我需要用Java构建一个跨平台的桌面应用程序,其GUI与当代桌面应用程序的质量相当。
Swing是默认选择,但是我还没有遇到一个Swing应用程序,它至少看起来不太过时和笨重(主观,我知道,但是使用GUI时很难避免审美判断)。
我注意到新的比特币客户端现在使用带有Java绑定的QT,并且确实具有吸引人的用户界面,但这样做的缺点是它不再是纯Java。
当我搜索与Swing相关的库时,我发现的大部分内容都是5岁或更大,尽管桌面应用程序的美学从那时起已经有了很大的发展。
如果您需要从头开始构建Java桌面应用程序,那么它将用于GUI吗?
答案 0 :(得分:31)
我还可以为你提供一个新的LaF来研究 - WebLaF。我目前正致力于通过使用WebLaF库基本功能,带来许多UI功能,并使Swing的工作变得更加容易。
一些示例显示了一些WebLaF组件的外观:
我定位的一些主要目标:
WebLaF库还提出了一些其他优点和独特功能:
您可以尝试使用demo-app来查看它是否足够现代和简单:)
答案 1 :(得分:9)
了解如何更改Java程序的外观。这允许您自定义程序的整体“主题”。 Here是关于改变LAF的信息。
答案 2 :(得分:9)
你有没有看过JavaFX 2.0?它旨在与Swing轻松互操作,并具有许多现代“好看”控件。
此外,正如lrAndroid所提到的,如果您使用以下方式设置系统外观,则Swing应用程序可能看起来像本机应用程序:
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
答案 3 :(得分:6)
现代Javascript框架(ExtJS,Dojo等...)提供相同的小部件丰富度或更多(例如像网格一样的Excel),更广泛的L& F并且通常更适合用户的操作系统。 用户也非常熟悉他们的浏览器,嘿,“现代的东西”在网络上,今天的现代网络是HTML + Javascript。
将应用转换为“类似网络”的开销很小。嵌入式Jetty可以保持非常小,磁盘空间不再是一个问题。
此路线还有其他优势可用于未来的应用演变。
修改强>
3年后,由于Electron
,这变得非常容易答案 4 :(得分:4)
答案 5 :(得分:2)
Nimbus的外观和感觉怎么样? Oracle Link 另请查看SO-Question
答案 6 :(得分:2)
我知道这个问题已经过时了,但是如果你不想使用FX并且仍然想使用Swing,那么试试MacWidgets,我已经在几个项目中使用过它。它很轻,看起来很棒。下面是我正在研究的一个旧项目,随着时间的推移,我已经完善了使用macwidgets,现在在我的公司内部使用它。
http://www.digitalhand.net/projects/jdataanalyzer/mainGUI.png
答案 7 :(得分:1)
QT相当广泛,但也非常庞大(臃肿)和复杂。例如,开放式办公室也使用SWT库。 SWT使用本机UI小部件作为按钮,表格等,其中Swing模拟它们。
然而,趋势显然是使用HTML和Javascript为浏览器编写富客户端应用程序。这些都在过去几年取得了巨大进步。
HTML5专门针对富客户端应用程序,具有更好的表单和本地数据库等功能,以支持断开连接的方案(请注意,最后一个功能尚未标准化,但它是由所有最新浏览器实现的。)
Javascript现在拥有强大的jQuery库及其众多插件。甚至还有像Coffeescript这样的语言,它们可以用更简单,更强大的语法来生成Javascript。
此类应用也无需连接外部服务器。可以在客户端上安装占地面积小的本地服务器(例如:jetty,node.js,...)和数据库(SQLite,H2,...),以构建完全独立的应用程序。
答案 8 :(得分:0)
摆动良好(稳定,有记录并在2026年之前得到支持)。问题在于它依赖于LookAndFeel系统,该系统提供了非常有限的样板选择。应该容易地单独更改每个组件的外观,然后释放其创造力。不幸的是,这很痛苦。应该在Swing之上构建IMHO框架,以使其成为可能,而不是创建JavaFX。
看看https://github.com/dotxyteam/ReflectionUI。
Ex GUI:http://javacollection.net/reflectionui/wp-content/uploads/2017/08/general.png
答案 9 :(得分:0)