-fx-border-style在运行时看起来不像预期,但在SceneBuilder上

时间:2015-04-28 10:39:57

标签: css javafx fxml

以下样式在SceneBuilder上按预期显示。 (唯一可见的边框是底部的,它是点缀的。)

但它在运行时看起来有所不同。 (所有边框都是可见且坚固的。)

.floatingPanel-title{
  -fx-text-alignment: center;
  -fx-text-fill: CORNFLOWERBLUE;
  -fx-font-weight: bold;
  -fx-font-size: 15px;
  -fx-background-color: #545050;
  -fx-border-style: none none dotted none;
  -fx-border-color: white;
}

我通过交换线路或注释掉一些部分尝试了一些但问题仍然是个问题。

你建议什么作为解决方案?

注意:

1)我将这种风格应用于标签和面板。这个问题对两者都有效。

2)我已经尝试过clean-compile。问题仍然存在。

1 个答案:

答案 0 :(得分:4)

这似乎是一个错误,抱歉。在我使用JavaFX 8u40进行测试时:

1)即使官方JavaFX CSS Reference Guide-fx-border-style上说

  

一系列边框样式值,以逗号分隔。中的每个项目   系列适​​用于边框系列中的相应项目   颜色。

逗号分隔的示例表现得奇怪和错误,而不是逗号分隔的示例。即这些

  -fx-border-style: dotted  dashed  dashed  dashed;
  -fx-border-color: red red red red;
  -fx-border-width: 2;

  -fx-border-style: dotted , dashed  , dashed  , dashed;
  -fx-border-color: red red red red;
  -fx-border-width: 2;

渲染方式不同。尽管有文档,但不使用逗号似乎更准确。

2)边框样式选项none在JavaFX 8中不起作用,但在JavaFX 2中起作用。您可以选择使用hidden

-fx-border-style: hidden hidden dotted hidden;

3)SceneBuilder的不同渲染和运行时可能是由于使用不同版本的JavaFX引起的。您可以通过

检查使用的版本
System.out.println(com.sun.javafx.runtime.VersionInfo.getRuntimeVersion());

最后,在观察了自己之后,欢迎您提交jira问题或投票给现有的。