javafx swing_JavaFX技巧9:请勿混用Swing / JavaFX

尽管JavaFX允许与Swing集成,但从用户反馈和众多未解决的问题来看,混合使用两者可能导致外观差异、闪烁、行为不一致、线程问题、窗口管理困难、焦点处理错误、上下文菜单混乱、光标问题和拖放异常。性能也会受到影响。如果重视质量,建议完全使用JavaFX重构应用。
摘要由CSDN通过智能技术生成

javafx swing

JavaFX团队非常努力地说服我们,因为可以将Swing内容嵌入JavaFX UI中,反之亦然,因此从Swing迁移到JavaFX很容易。 我必须承认,我从来没有尝试过,但是根据我从客户那里得到的反馈,我只能建议不要将Swing和JavaFX混合使用。 在撰写本文时,有200多个与Swing集成(在JavaFX问题管理系统中注册)有关的未解决问题(120多个错误)。

发行类型

以下是如果仍然决定使用它可能遇到的问题的列表:

  • 外观 –在Swing中完成的部分与在JavaFX中完成的部分之间总会有明显的差异。 字段将显示不同的字体质量 ,不同的边框,不同的焦点突出显示等。
  • 闪烁 –您可能会在用户界面中遇到闪烁
  • 行为 -控件的行为会有所不同。 用户将可以使用手势滚动JavaFX控件,但不能滚动Swing控件。 双击两个列标题之间的行时,JavaFX TableView控件的列将自动调整大小,而Swing JTable则不会。
  • 线程 –您一直在处理与使用两个不同的UI线程(Swing EDT和JavaFX应用程序线程)有关的问题。 您将遇到死机的UI和不一致的状态问题。
  • 窗口管理 –很难/不可能控制哪个窗口将在其他窗口之上以及哪个窗口阻止其他窗口的输入(模态) 。 弹出窗口可能不再自动隐藏
  • 焦点处理错误的窗口可能会引起焦点。 Swing控件和JavaFX控件之间的焦点遍历可能不起作用。
  • 上下文菜单 –您可能无法通过单击UI的其他位置来关闭菜单,或者最终可能同时打开两个上下文菜单(一个由JavaFX控制,一个由Swing控制)。
  • 光标 –在不同的控件/组件上设置不同的光标将无法正常工作
  • 拖放无论是SwingNode本身内还是在Swing与JavaFX之间,异常都将朝着您前进。
  • 性能 -混合了Swing组件的JavaFX控件的性能/渲染速度将降低

结论

这是什么意思? 好吧,这意味着如果您遵循Swing / JavaFX混合策略,最终将不会节省时间。 至少如果质量对您来说不重要。 如果您只关注使功能可用,那么可能,但是,如果您要发布商业级的研究生/专业应用程序,则不会。

如果您已经决定迁移到JavaFX,那么请执行Full Monty并在JavaFX中重做整个应用程序,这值得等待。

翻译自: https://www.javacodegeeks.com/2014/07/javafx-tip-9-do-not-mix-swing-javafx.html

javafx swing

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值