我目前正在开发一个应用程序,其代码库的历史可以追溯到至少2001年。该系统的一个组件是使用Java Swing编写的桌面客户端。它使用了大多数旧的布局,包括BorderLayout,FlowLayout和Gridbag布局。我们需要定期管理和更新许多相当复杂的屏幕,我们有时需要使用新的用户界面创建新功能。
有没有比Swing更好的东西我们可以考虑迁移到?
是否有可能分阶段进行迁移(即在长时间的迁移阶段,我们会将旧Swing组件与新组件混合使用)?
如果我们今天要用Java重新编写桌面客户端,我们还应该使用Swing吗?
我发现自己主要使用GridBagLayout,这仍然是更复杂布局的首选工具,还是我可以使用更好的布局?
答案 0 :(得分:4)
我正在读书,甲骨文打算用JavaFX取代Swing。
看看下面的问题和答案:
<强> 6。 JavaFX是否将Swing替换为Java SE的新客户端UI库? 是。但是,在可预见的未来,Swing仍将是Java SE规范的一部分,因此包含在JRE中。虽然我们建议开发人员在构建新应用程序时尽可能多地利用JavaFX API,但可以使用JavaFX扩展Swing应用程序,从而实现更平滑的过渡。
您可以看到原始评论here。
在这种情况下,我相信您可以考虑使用JavaFX。
答案 1 :(得分:2)
如果您使用的是Java 8,则可以将javafx用于新的组件。可以将Swing componant与javafx一起使用。
答案 2 :(得分:1)
你仍然可以使用java swing,但如果你需要迁移,你可以使用JavaFX(同样是桌面客户端)分阶段迁移。如果你需要使用Web Client,那么你可以使用GWT(这有助于开发人员已经知道了UI组件),而GWT代码是用Java编写的,而Javascript是在编译时生成的。
答案 3 :(得分:1)
答案 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 Scan,sources are。