【发布时间】:2017-11-17 08:41:00
【问题描述】:
想要更改设置为始终打开的控件 FX PopOver 标题的颜色。我想在 CSS 中执行此操作,我已经更改了背景颜色。我在 .popover 下尝试了几个不同的选项。
这是我最后尝试的 CSS 示例:
public class HelloPopOver extends Application {
@Override
public void start(Stage primaryStage) {
//Build PopOver look and feel
Label lblName = new Label("John Doe");
Label lblStreet = new Label("123 Hello Street");
Label lblCityStateZip = new Label("MadeUpCity, XX 55555");
VBox vBox = new VBox(lblName, lblStreet, lblCityStateZip);
//Create PopOver and add look and feel
PopOver popOver = new PopOver(vBox);
// I always want to see my header
popOver.setHeaderAlwaysVisible(true);
Label label = new Label("Mouse mouse over me");
label.setOnMouseEntered(mouseEvent -> {
popOver.show(label);
((Parent)popOver.getSkin().getNode()).getStylesheets().add(getClass().getResource("Style.css").toExternalForm());
});
StackPane root = new StackPane();
root.getChildren().add(label);
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("Hello World!");
primaryStage.setScene(scene);
primaryStage.show();
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
launch(args);
}
}
还有 CSS:
.popover > .border {
-fx-stroke-width: 0.5;
-fx-fill: rgba(200,200,200, 1);
-fx-text-fill: red; /* This doesn't work, but is what I am looking for */
}
.popover > .label {
-fx-text-fill: red; /* This doesn't work, but is what I am looking for */
}
CSS如何将标题颜色改为红色?
【问题讨论】:
-
你试过
.popover .label而不是.popover > .label吗?您现在所拥有的是选择 PopOvers 的直接子标签,而您的标签可能不是。 -
我做到了,但并不快乐。我也试过
.label,但这也没有给我任何东西。我怀疑我完全称它为标签,从而使我的搜索产生了偏见。 -
是的,我认为这是一个远射,您可能已经尝试过了。你总是可以在java中的标签上设置一个特定的样式类,比如
label.getStyleClass().add("popover-label")而不是.popover > .label,只需调用它.popover-label -
也看看这个问题stackoverflow.com/questions/28086092/javafx-style-by-classname 他们做的一件事就是直接使用对象的类名,而不是像这样的类选择器:
Label而不是.label跨度> -
你能自己做一个标题吗?
标签: java css javafx popover controlsfx