【问题标题】:JavaFX styling broken after upgrade from Java 7从 Java 7 升级后 JavaFX 样式损坏
【发布时间】:2017-08-17 16:48:33
【问题描述】:

从 Java 7 升级到 Java 8 后,我们在“遗留”应用程序中看到了一些样式问题(阅读:我没有编写它并且对 JavaFX 没有真正的良好经验)应用程序。在多次尝试在 Scene Builder 中解决此问题后(再次,那里没有真正的经验,请多多包涵),我希望在这里得到一些指示。

下图说明了我们在文本框、按钮和选择框方面看到的两个问题。一,文本框失去了圆角样式(这并不重要,但我想了解原因)。二,当悬停在任何元素上时,它们会被一个白色框覆盖,在再次将鼠标移开和/或单击其他位置后,该框最终会消失。

该应用程序使用了几个样式表,我不确定哪些是相关的。任何建议或指示将不胜感激!

【问题讨论】:

  • 问题出在您的一个或多个样式表中,因此 SceneBuilder 不会有任何帮助。尝试使用ScenicView 来调试样式。
  • 感谢您的指点。虽然我看到悬停时 ScenicView UI 中发生了变化,但我没有看到任何看起来像白色框的东西正在显示。

标签: javafx java-8 java-7


【解决方案1】:

在 Java 7 和 Java 8 之间,新的默认样式称为 modena 和旧的默认样式称为 caspian。您的旧 css 代码可能是针对旧的里海样式表编写的,并且您的代码在应用于新的 modena 样式时可能无效。您可以尝试通过在命令行上提供此属性 -Djavafx.userAgentStylesheetUrl=caspian 来使用旧的默认样式,然后查看您的旧 css 是否再次工作。我不确定它是否会起作用,但值得一试。

【讨论】:

  • 添加JVM选项,绝对是一种改进。但是,单击节点时仍会出现白框。不过,当单击或悬停在其他元素上时,它现在确实消失得更快了。
猜你喜欢
  • 2012-11-28
  • 2018-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-26
  • 1970-01-01
  • 1970-01-01
  • 2014-12-14
相关资源
最近更新 更多