我想首先通过 css 文件将多种样式(字体、字体大小)应用到我的组件。
(我正在使用 oracle 的 SceneBuilder 2.0
。)
所以我将我的 css 文件添加到顶部组件。
我的 css 文件如下所示:
应用程序.css
.root {
-fx-font: 14px Arial;
}
.button {
-fx-font: 28px Arial;
}
我的 Application.fxml 看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.text.*?>
<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<VBox maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="240.0" prefWidth="320.0" stylesheets="@Application.css" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
<children>
<Text strokeType="OUTSIDE" strokeWidth="0.0" text="MyText" />
<Label text="MyLabel" />
<Button mnemonicParsing="false" text="MyButton" />
</children>
</VBox>
现在我将文本元素或标签元素添加到我的 Pane 中,字体不会受到根节点的影响。但是,如果我将 Button-Element 添加到我的 Pane ,则会应用 .button 的样式。
我预计 .root
节点会影响任何其他元素的样式。就像在这个已回答的问题中一样,但它没有用:
Set Font globally in JavaFX
谁能解释我做错了什么?
归档类似内容的唯一方法是:直接将样式设置为:
-fx-font: 14px Arial;
在 Style
下,我希望我可以将其存储在一个 css 文件中。
最佳答案
我删除了我之前的回答。它不准确,而且有点困惑。
容器控件没有属性 -fx-font。所以当你定义:
.root {
-fx-font: 14px Arial;
}
完全没有效果。
如果你想为所有子控件设置字体,你应该这样做:
.root * {
-fx-font: 14px Arial;
}
或者如果您只想更改容器的特定控件:
.table-view .label {
-fx-font: 14px Arial;
}
或者应用的所有标签:
.label {
-fx-font: 14px Arial;
}
关于css - 在 css 中设置 JavaFX .root 样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34766205/