从JavaFX 2.2到JavaFX8

用户名

我已经使用JavaFX 2.2创建了一个应用程序,并希望切换到JavaFX8。使用JavaFX2.2,我的应用程序如下所示:

JavaFX 2.2

当使用JavaFX 8而不更改任何源代码时,它看起来像这样:

JavaFX8

使用JavaFX8,某些节点根本不会显示(例如,标准1),有时会在随机单击滚动窗格后出现。此外,节点的大小不正确(比较步骤1和小的小点)。另一个问题是,当执行诸如添加节点之类的操作时,应用程序在JavaFX8中严重滞后。

不幸的是,我根本没有收到任何错误消息,而且我几乎不知道要使该应用程序在JavaFX8中运行必须修复的内容。任何帮助/想法/提示将不胜感激。

可能的问题(?):

  • 我在应用程序中经常使用Platform.runLater()。这在JavaFX 8中是否有所改变?
  • 在JavaFX2.2中,将节点(例如,包含文本的堆栈窗格)添加到滚动窗格后,会自动计算其大小。假设我添加了一个位置为x和y的节点。只有在JavaFX绘制了它之后,我才能获得它的高度和宽度(boundsInParent.getHeight())。这也是为什么我经常使用Platform.runLater()来布局节点的原因。JavaFX 8中的这种行为是否已更改?

编辑:“错误”与CSS样式相关。如果我删除添加到节点的样式表,则一切正常(当然,除了节点的样式外)。特别是我必须删除的命令具有以下形式:

getStylesheets()。add(ClassName.class.getResource(“ CSSFile.css”)。toExternalForm());

用户名

我发现了错误:在CSS样式表(用于节点)中有一个负值。删除该值使它像在JavaFX 2.2中一样工作。确切地说,我必须更改以下内容:

-fx-border-width: 5 -1 0 5 ;

-fx-border-width: 5 0 0 5 ;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章