是否可以使用 JavaFX 和 Swing 制作具有视觉吸引力的 GUI?

Posted

技术标签:

【中文标题】是否可以使用 JavaFX 和 Swing 制作具有视觉吸引力的 GUI?【英文标题】:Is it possible to make a visually appealing GUI with JavaFX & Swing? 【发布时间】:2011-02-18 12:57:42 【问题描述】:

我想用 java 做一个视觉上吸引人/用户友好的 GUI。 Swing 在“皮肤”定制方面是有限的。我正在考虑JavaFX,但我还不明白,

我可以通过这项技术实现什么目标? 有多难? 您有 Swing/JavaFX 集成的真实示例吗?

我想本着这种精神做一些事情,它是建立在 .NET 框架上的:

原文链接:http://www.patrickpayet.com/net/?p=329 edit:我可以阅读他们的任何入门概述示例代码,以大致了解需要完成的工作以实现屏幕截图的精神吗?可能类似于 miglayout 的摇摆演示 http://www.migcalendar.com/miglayout/swingdemoapp.jnlp

edit2:我发现 http://download.java.net/general/openjfx/demos/tutorial.jnlp 确实很基础,链接自 http://www.deitel.com/ResourceCenters/Programming/JavaFX/JavaFXTutorialsandDemos/tabid/2187/Default.aspx

【问题讨论】:

我想我这辈子都不会在同一句话中看到“Java”和“性感”这两个词...... @Dave 23 岁,还很年轻,你还有时间去发现生活中的新事物。也许从 filthyrichclients.org 和 Romain Guy 的博客 curious-creature.org/category/swing 开始以获得一些启发。 我的意思不是我的年龄,我的意思是你戴夫和你(和我)很可能还有一些事情要发现。 顺便说一句,我不认为屏幕截图上的 UI 很性感。但也许这主要是一个设计问题。 【参考方案1】:

您可以使用LookAndFeelMetalizer 获得丰富多彩的原始 GUI。 例如phoyo 就完成了。

【讨论】:

【参考方案2】:

是的,您可以通过编写自己的 CSS 文件来使用 JavaFX 做到这一点。了解更多信息:JavaFX CSS Documentation

如果您熟悉 CSS,实际上并不难。

【讨论】:

【参考方案3】:

单独的 Swing 也可以创建漂亮的 UI。您可以在线探索插件和示例的数量以添加各种功能。我建议您浏览 Romain Guy's 博客并阅读他的书 Filthy Rich Clients。我发现this 博客真的很酷。 Swing 不会让你失望。

【讨论】:

【参考方案4】:

还可以查看我去年参加的 JFXStudio 挑战赛:

http://jfxstudio.wordpress.com/2009/11/10/challenge-five-winners/

这是一个非常简单的“视频扑克”游戏,仅用不到 3,000 个字符(即 30 行代码)编写。请注意,90% 的图形元素是图像,这让您了解制作“性感”用户界面的范围。

我还要补充一点,这个应用程序的主要元素是在一个晚上编写的。 JavaFX 是一个非常强大的 UI 创建工具,一旦您习惯了它。

【讨论】:

令人印象深刻的工作,感谢您的意见。也就是说,代码在哪里?在罐子里?我认为这是某种精英主义的错误部分。我对精英主义一无所知。现在将 zip 文件放到网上并不难(参见dl.free.fr),干杯。 不确定你对精英主义的意思 - 我提到我打算在该页面上的 cmets 中提供代码,虽然还没有这样做(它需要从其高度浓缩的当前形式重写)。我仍然打算这样做。但是,其他人发布的链接将为您提供在 JavaFX 中编写类似的琐碎应用程序的足够基础。 该链接现在“标记为私有”。我想这意味着我不能再访问它了?【参考方案5】:

Swing 的 L&F 可以在这种情况下为您提供帮助。

自定义 L&F 的传统方式是为所有组件编写自己的 UI 类,这并不容易。

Synth L&F 包含在 JRE5 中,并在 JRE6 中变得成熟。使用 Synth L&F,您可以使用图像和画家类自定义您自己的外观。你也可以看看这个IDE for Synth based L&F。

【讨论】:

【参考方案6】:

是的,Swing 非常可定制。我推荐阅读Filthy Rich Clients。

例如,看看Cezanne L&F。

【讨论】:

【参考方案7】:

用 JavaFX 做这样一个 GUI 似乎很容易。

为了快速了解 JavaFX 回声系统,我建议您查看这些站点,其中展示了大多数最前沿的 JavaFX 技术:

Jonathan Giles blog 在 Swing/JavaFX/Griffon 上 Dean Iverson blog 详细了解 JavaFX 组件 Amy Fowler blog 最后,看看JavaFX home site 示例。

【讨论】:

非常感谢,我可以阅读他们的任何入门概述示例代码,以大致了解需要完成的工作以实现屏幕截图的精神吗?可能类似于 miglayout 的摇摆演示 migcalendar.com/miglayout/swingdemoapp.jnlp ? 好吧,没有深入研究JavaFX,我无法回答这样的答案。不过,我认识的同事选择了这条路,看起来 javafx 主页可能会引导您找到相当不错的教程。 我在问题download.java.net/general/openjfx/demos/tutorial.jnlp添加了一个javafx webstart演示

以上是关于是否可以使用 JavaFX 和 Swing 制作具有视觉吸引力的 GUI?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在 JavaFX 应用程序中嵌入 Swing 组件?

JavaFX 应该取代 Swing 吗?

JavaFX 表 - 如何添加组件?

使用JAVAFX和SWING有啥区别[重复]

带有 SWING 与 JavaFX 的 Java 用户界面

IntelliJ Idea 制作windows程序界面