我想最初通过css文件将几种样式(字体,字体大小)应用于我的组件。
(我正在使用甲骨文中的SceneBuilder 2.0
。
所以我将我的 css 文件添加到顶部组件。
我的css文件看起来像这样:
应用.css
.root {
-fx-font: 14px Arial;
}
.button {
-fx-font: 28px Arial;
}
我的应用程序.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>
现在我向我的窗格添加了文本元素或标签元素,字体不受根节点的影响。但是,如果我将按钮元素添加到我的窗格中,则会应用 .button 的样式。
我预计.root
节点会影响任何其他元素的样式。就像这个回答的问题一样,但它不起作用:在 JavaFX 中全局设置字体
谁能解释一下我做错了什么?
存档类似内容的唯一方法是:直接将样式设置为:
-fx-font: 14px Arial;
在我希望我可以存储在 CSS 文件中的Style
下。
我删除了之前的答案。它不准确,有点令人困惑。
容器控件没有属性 -fx-font。因此,当您定义:
.root {
-fx-font: 14px Arial;
}
它根本没有效果。
如果要为所有子控件设置字体,则应执行以下操作:
.root * {
-fx-font: 14px Arial;
}
或者,如果只想更改容器的特定控件:
.table-view .label {
-fx-font: 14px Arial;
}
或应用程序的所有标签:
.label {
-fx-font: 14px Arial;
}