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

标签 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) 我已经尝试过清理编译。问题依然存在。

最佳答案

好像是bug,不好意思。在我使用 JavaFX 8u40 进行的测试中:

1) 尽管官方JavaFX CSS Reference Guide-fx-border-style 上表示为

A series of border style values, separated by commas. Each item in the series applies to the corresponding item in the series of border colors.

逗号分隔的例子比没有逗号分隔的例子表现得奇怪和错误。即这些

  -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 问题或为现有问题投票。

关于css - -fx-border-style 在运行时看起来不像预期的那样,但在 SceneBuilder 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29917121/

相关文章:

jquery - 打印时仅用于第二页的 Css 样式?

html - 元素 "inline-block"在 IE 或 Microsoft Edge 中使用时位置不同

java - boolean 值不会从 Object.getBoolean() 更新;

java - 如何在另一个方法中使用同一个类中的方法,这需要不同的参数

java - 如何处理鼠标事件FXML

css - 为什么文本对齐会影响子 div,但不会影响字体大小?

css - 带有 float 和 % 宽度容器的 IE8 CSS 问题

java - 无法访问句柄事件中的按钮/文本区域

java - 无法将 javafx.scene.control.TextField 设置为字段 'user'

java - 用选项填充组合框