工具提示背景(使用JavaFXCSS)

工具提示背景(使用JavaFXCSS),javafx,tooltip,Javafx,Tooltip,这个问题很简单,但我在任何地方都找不到答案(我想我不知道到底要找什么…)。如何防止工具提示以场景背景图像为背景显示丑陋的正方形,如中所示 这是我的CSS,我相信一些选项,比如按钮会影响工具提示。。。就像它们在代码的另一部分影响我的日期选择器一样。我如何管理它们不产生这种附带影响?只需为特定对象(如日期选择器或工具提示)定义CSS就可以了吗 我使用的是JDK8U11,MacOSMavericks .root { -fx-background-image: url("media/backg

这个问题很简单,但我在任何地方都找不到答案(我想我不知道到底要找什么…)。如何防止工具提示以场景背景图像为背景显示丑陋的正方形,如中所示

这是我的CSS,我相信一些选项,比如按钮会影响工具提示。。。就像它们在代码的另一部分影响我的日期选择器一样。我如何管理它们不产生这种附带影响?只需为特定对象(如日期选择器或工具提示)定义CSS就可以了吗

我使用的是JDK8U11,MacOSMavericks

.root {
     -fx-background-image: url("media/background.jpg");
}

.button {
    -fx-background-color: 
        linear-gradient(#686868 0%, #232723 25%, #373837 75%, #757575 100%),
        linear-gradient(#020b02, #3a3a3a),
        linear-gradient(#9d9e9d 0%, #6b6a6b 20%, #343534 80%, #242424 100%),
        linear-gradient(#8a8a8a 0%, #6b6a6b 20%, #343534 80%, #262626 100%),
        linear-gradient(#777777 0%, #606060 50%, #505250 51%, #2a2b2a 100%);
    -fx-background-insets: 0,1,4,5,6;
    -fx-background-radius: 9,8,5,4,3;
    -fx-padding: 15 30 15 30;
    -fx-font-family: "Arial Black";
    -fx-font-size: 18px;
    -fx-font-weight: bold;
    -fx-text-fill: white;
    -fx-effect: dropshadow( three-pass-box , rgba(255,255,255,0.2) , 1, 0.0 , 0 , 1);
}

.button:hover {
    -fx-background-color: 
        linear-gradient(#757575 0%, #373837 25%, #232723 75%, #686868 100%),
        linear-gradient(#3a3a3a, #020b02),
        linear-gradient(#242424 0%, #343534 20%, #6b6a6b 80%, #9d9e9d 100%),
        linear-gradient(#262626 0%, #343534 20%, #6b6a6b 80%, #8a8a8a 100%),
        linear-gradient(#2a2b2a 0%, #505250 50%, #606060 51%, #777777 100%);
    -fx-background-insets: 0,1,4,5,6;
    -fx-background-radius: 9,8,5,4,3;
    -fx-padding: 15 30 15 30;
    -fx-font-family: "Arial Black";
    -fx-font-size: 18px;
    -fx-font-weight: bold;
    -fx-text-fill: white;
    -fx-effect: dropshadow( three-pass-box , rgba(255,255,255,0.2) , 1, 0.0 , 0 , 1);
    -fx-cursor:hand;
}

.text-area *.text {
    -fx-text-alignment: justify;
}

.text-area {
    -fx-background-color: rgba(255,255,255,0.4);
}

.text-area .scroll-pane {
    -fx-background-color: transparent;
}

.text-area .scroll-pane .viewport{
    -fx-background-color: transparent;
}


.text-area .scroll-pane .content{
    -fx-background-color: transparent;
}

.radio-button{
    -fx-font-size: 14px;
   -fx-font-family: "Arial Black";
   -fx-fill: #818181;
   -fx-effect: innershadow( three-pass-box , rgba(0,0,0,0.7) , 6, 0.0 , 0 , 2 );
}

以下是根据Java 8 modena.css样式表的工具提示的标准样式

.tooltip {
    -fx-background: rgba(30,30,30);
    -fx-text-fill: white;
    -fx-background-color: rgba(30,30,30,0.8);
    -fx-background-radius: 6px;
    -fx-background-insets: 0;
    -fx-padding: 0.667em 0.75em 0.667em 0.75em; /* 10px */
    -fx-effect: dropshadow( three-pass-box , rgba(0,0,0,0.5) , 10, 0.0 , 0 , 3 );
    -fx-font-size: 0.85em;
}

您可以根据自己的意愿对其进行修改。有关执行此操作的信息位于Oracle中。

.root
样式类添加到所有场景的根节点。由于
Tooltip
有自己的场景,因此Tooltip的根节点也有
.root
类,因此背景图像也会根据CSS应用于它。解决方案是向主场景的根添加一个独特的样式类

scene.getRoot().getStyleClass().add("main-root");
并指定此独特样式类的背景图像

.main-root {
    -fx-background-image: url("media/background.jpg");
}

这很奇怪。也许你用来设置其他节点样式的CSS也意外地应用到了工具提示中?是的,我想是这样的。。。我应该发布我的CSS文件吗?它很短…我刚刚编辑并发布了CSS,请看一看只是出于好奇。。。有没有办法在添加样式之前删除所有样式。。。至于确保不会有任何干扰?我不知道有这样的事情。当您使用
node.setStyle(“-fx fill:red;”
以编程方式设置样式时,随后的
setStyle
将覆盖以前的值,但不会清除外部样式表设置的样式。我已将此代码添加到CSS中。。。对工具提示没有影响,工具提示似乎保留了场景背景和主按钮格式。在您的问题中放置一个可以运行但只包含复制问题所需的代码的问题。还要在问题中添加完整的环境信息(java运行时版本和操作系统)。