2

由于我的规则已经到位,但这些错误会顺畅地出现。我试图了解网络上可用的解决方案,但没有一个对我有用。

Jul 18, 2016 1:39:17 PM javafx.scene.CssStyleHelper calculateValue WARNING: Could not resolve '-fx-tab-border-color' while resolving lookups for '-fx-background-color' from rule '*.tab-pane>*.tab-header-area>*.control-buttons-tab' in stylesheet file ***style.css***

上面提到了很多类似的警告,因此某些组件无法正确加载。使用Java1.8.0_66。

我的css文件中的root是这样的:

.root {

    -fx-base: #d0d0d0;

    -fx-background: #f4f4f4;

    -fx-control-inner-background: white;
    -fx-font-family:"Courier";
    -fx-font-size: 12;

    -fx-dark-text-color: black;
    -fx-mid-text-color: #292929;
    -fx-light-text-color: white;

    -fx-accent: #0093ff;

    -fx-focus-color: #0093ff;

    -fx-color: -fx-base;

    -fx-disabled-opacity: 0.9;

    -fx-hover-base: ladder(
        -fx-base,
        derive(-fx-base,20%) 20%,
        derive(-fx-base,30%) 35%,
        derive(-fx-base,40%) 50%
     );

    -fx-pressed-base: derive(-fx-base,-20%);

    -fx-focused-base: -fx-base;

    -fx-tab-border-color: -fx-box-border;

    -fx-background-color: inherit;
    -fx-background-radius: inherit;
    -fx-background-insets: inherit;
    -fx-padding: inherit;

    -fx-cell-hover-color: #cce3f4;

    -fx-cell-focus-inner-border: #85b9de;

    -fx-page-bullet-border: #acacac;    
    -fx-page-indicator-hover-border: #accee5;   
}

它用于:

.tab-pane > .tab-header-area > .control-buttons-tab {
    -fx-background-color: -fx-tab-border-color, -fx-inner-border, -fx-body-color;
    -fx-background-insets: 0, 1, 2;
    -fx-background-radius: 5 5 0 0, 4 4 0 0, 3 3 0 0;
    -fx-padding: 0.083333em 0.25em 0.083333em 0.25em; /* 1 3 1 3 */
}

是同一个css文件。

提前致谢!!

4

2 回答 2

3

我最近也遇到了这个问题。正如“RAM World”所说,当 aNode不是根元素但仍在访问root块中的预定义值时会发生此问题。一个简单的解决方案是扩大选择器的范围,以便 javafx 可以找到预定义的值。例如;

.root > *
{
    /* add your predefined values here */
}

在这种情况下,它会选择它的root每个(嵌套)子级。我更喜欢这种表示法,因为它清楚地表明这些是根属性/值。如果您想要最短的符号,以下也将起作用:

*
{
    /* add your predefined values here */
}

在这种情况下,它选择每个Node.

尽管这是/曾经是一篇旧帖子,但希望这对某人有所帮助。


编辑

不要使用第一种方法(root > *)!使用动态根 javafx 时仍会抱怨未解决的规则/属性。只有第二种方法(*)对我有用,没有错误

于 2018-03-10T09:50:22.473 回答
0

问题在于为启动应用程序而编写的 java 代码Parent不是根元素,Parent 嵌套在 Pane 中。这就是为什么它能够解析 CSS,这仅在 FX8 中看到,因为在 javafx2.2 中,为了应用cssParent不是实际的根元素。如果 Parent 不是根元素,它在 JavaFx2.2 中可以正常工作。

于 2016-07-25T04:35:19.453 回答