我应该继续使用Swing作为我的桌面应用程序

时间:2016-03-10 15:50:13

标签: java swing layout-manager

我目前正在开发一个应用程序,其代码库的历史可以追溯到至少2001年。该系统的一个组件是使用Java Swing编写的桌面客户端。它使用了大多数旧的布局,包括BorderLayout,FlowLayout和Gridbag布局。我们需要定期管理和更新许多相当复杂的屏幕,我们有时需要使用新的用户界面创建新功能。

有没有比Swing更好的东西我们可以考虑迁移到?

是否有可能分阶段进行迁移(即在长时间的迁移阶段,我们会将旧Swing组件与新组件混合使用)?

如果我们今天要用Java重新编写桌面客户端,我们还应该使用Swing吗?

我发现自己主要使用GridBagLayout,这仍然是更复杂布局的首选工具,还是我可以使用更好的布局?

6 个答案:

答案 0 :(得分:4)

我正在读书,甲骨文打算用JavaFX取代Swing。

看看下面的问题和答案:

  

<强> 6。 JavaFX是否将Swing替换为Java SE的新客户端UI库?   是。但是,在可预见的未来,Swing仍将是Java SE规范的一部分,因此包含在JRE中。虽然我们建议开发人员在构建新应用程序时尽可能多地利用JavaFX API,但可以使用JavaFX扩展Swing应用程序,从而实现更平滑的过渡。

您可以看到原始评论here

在这种情况下,我相信您可以考虑使用JavaFX

更多详情here和好例子here

答案 1 :(得分:2)

如果您使用的是Java 8,则可以将javafx用于新的组件。可以将Swing componant与javafx一起使用。

答案 2 :(得分:1)

你仍然可以使用java swing,但如果你需要迁移,你可以使用JavaFX(同样是桌面客户端)分阶段迁移。如果你需要使用Web Client,那么你可以使用GWT(这有助于开发人员已经知道了UI组件),而GWT代码是用Java编写的,而Javascript是在编译时生成的。

答案 3 :(得分:1)

  • Java FX功能更强大,更美观
  • 我们可以说swing已被java FX取代。
  • 现在有一天没有人使用挥杆,因为java FX超过挥杆有很多优势
  • 它有一个很好的功能,称为scaneBuilder,我们可以将组件拖放到适当的位置,这样可以节省大量时间。
  • 不同类型的布局可以使组件更具吸引力。
  • 非常我们可以使用CSS 来设置用户界面,因此更美观,更具吸引力
  • 我们也可以与网络组件集成。

答案 4 :(得分:0)

如果您完全重做布局,我会看看使用Spring Layout的Matisse。

https://netbeans.org/features/java/swing.html

使用布局工具获取组件之间的关系比尝试在GridBag中手动排列所有内容要容易得多。

如果您没有重做代码的主要部分,我就不会触摸它。不要修理那些坏了的东西。

关于JavaFX,我个人并未对此印象深刻。你可以看看它,但JavaFX让我觉得需要更多&#34;烘烤&#34;时间。我不会放弃Swing。

答案 5 :(得分:0)

如果您需要让Java桌面客户端看起来像某个平台(Windows,MacOS,Linux)的本机应用程序,您可以查看Standard Widget Toolkit (SWT) library

使用此库的一个着名应用示例是Eclipse IDE。另一个 - 位于GitHub的Angry IP Scansources are