-fx-border-style在运行时看起来不理想,但在SceneBuilder上却不如预期

bAr*_*ris 3 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;
}
Run Code Online (Sandbox Code Playgroud)

我尝试通过换行或注释掉某些部分来尝试一些操作,但是问题仍然是一个问题。

您对解决方案有何建议?

注意:

1)我将此样式应用于标签以及面板。这个问题对两个都有效。

2)我已经尝试过干净编译。问题仍然存在。

Ulu*_*Biy 5

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

1)尽管官方的JavaFX CSS参考指南上说-fx-border-style的

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

逗号分隔的示例比没有逗号分隔的示例表现出奇怪和错误的行为。即这些

  -fx-border-style: dotted  dashed  dashed  dashed;
  -fx-border-color: red red red red;
  -fx-border-width: 2;
Run Code Online (Sandbox Code Playgroud)

和

  -fx-border-style: dotted , dashed  , dashed  , dashed;
  -fx-border-color: red red red red;
  -fx-border-width: 2;
Run Code Online (Sandbox Code Playgroud)

呈现不同。尽管有文档,但不使用逗号似乎更准确。

2)borderstyle选项none在JavaFX 8中不起作用,但在JavaFX 2中不起作用。您可以选择使用代替它hidden。

-fx-border-style: hidden hidden dotted hidden;
Run Code Online (Sandbox Code Playgroud)

3)使用不同版本的JavaFX可能会导致SceneBuilder和运行时呈现不同。您可以通过以下方式检查使用的版本

System.out.println(com.sun.javafx.runtime.VersionInfo.getRuntimeVersion());
Run Code Online (Sandbox Code Playgroud)

最后,在观察了自己之后,我们欢迎您提出初中问题或对现有问题进行投票。