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