gpt4 book ai didi

css - JavaFX .setStyle 内联子元素

转载 作者:行者123 更新时间:2023-11-28 01:42:39 25 4
gpt4 key购买 nike

为了在 JavaFX 中为许多元素设置背景样式,您需要使用 css 文件,或使用 .setStyle。

在我的例子中,我必须从 ComboBox 设置下拉菜单的背景样式,但我必须使用 .setStyle 而不是 css 文件(因为我有一些动态用于设置不同 GUI 元素样式的颜色)。这里的问题是,如果我使用以下 css 代码,函数 .setStyle 无法识别它,就好像我要使用 css 文件一样。

.setStyle(".combo-box .list-cell{ -fx-background: blue;}");

代码看起来像这样:

comboBox.setStyle(".combo-box .list-cell{ -fx-background: #"+ Color1.toString().substring(2) + ";}");

Color1 是一个 Color 对象,它将根据情况获得一个动态值。

问题是,我可以在函数 .setStyle 中使用 .list-cell 吗?如果是这样,如何?如果我必须使用 .setStyle,这将帮助我处理其他 GUI 元素。

最佳答案

可以为此使用查找颜色。您可以使用 setStyle 分配它们并从 CSS 样式表中使用它们:

@Override
public void start(Stage primaryStage) {
ComboBox<String> comboBox = new ComboBox<>();
comboBox.getItems().addAll("A", "B", "C");

StackPane root = new StackPane(comboBox);

// set color
root.setStyle("cell-color: blue;");

Scene scene = new Scene(root, 400, 400);
scene.getStylesheets().add("style.css");

primaryStage.setScene(scene);
primaryStage.setResizable(false);
primaryStage.show();
}

样式.css

/* default values */
.root {
cell-color: yellow;
}

/* use color */
.combo-box .list-cell {
-fx-background: cell-color;
}

关于css - JavaFX .setStyle 内联子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50355472/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com