我已经定义了一个带有8行GridPane的FXML,它包含以下组件(在该线程的末尾给出了FXML和CSS定义):
此处的区域用于加载图像,这是通过CSS样式完成的。对于上面定义的每个组件集(例如2个复选框),我选择了一个,并通过使用 -fx-font-size 样式增加了它的大小。特别是,我将字体大小定义为 " 1.3xDefault_System_Font_Size(12)" 。每个组件的文本中的标签(INC)和(DEF)用于描述字体大小是增加还是保留为默认值。
从上面的屏幕截图中可以看出,复选框的标签已增加,但框本身却没有。这同样适用于图像,它们的尺寸没有增加,但标签大小确实如此。
当我更改.root中的默认字体大小时,这会变得更糟:
.root{
-fx-font-size: 28;
}
在上面的示例中,由于我将默认字体大小从12更改为28,因此我希望所有标签和图像都根据此新大小更改其大小。图像大小由 -fx-background-size 定义, 4em 。
但是,所有标签都正确增加,但图像仅在具有 DEF 标记的节点上正确增加。这同样适用于复选框,其中 DEF 上的标签和框增加,而仅 INC 标签的标签尺寸正确增加且盒子还小。
有没有办法制作图片和复选框来正确增加尺寸?这是一个错误,还是我做错了什么?
FXML:Gridpane
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.CheckBox?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.ColumnConstraints?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.layout.Region?>
<?import javafx.scene.layout.RowConstraints?>
<GridPane stylesheets="@css/Test.css" vgap="5.0" xmlns="http://javafx.com/javafx/8.0.40" xmlns:fx="http://javafx.com/fxml/1" fx:controller="ebay.client.controller.SettingsScreenController">
<children>
<CheckBox nodeOrientation="RIGHT_TO_LEFT" styleClass="increased_font" text="CheckBox (Inc)" GridPane.rowIndex="1" />
<CheckBox nodeOrientation="RIGHT_TO_LEFT" text="CheckBox (Def)" GridPane.rowIndex="2" />
<Label cache="true" styleClass="increased_font" text="Label (Inc)" GridPane.rowIndex="3" />
<Label cache="true" text="Label (Def)" GridPane.rowIndex="4" />
<Label cache="true" styleClass="increased_font" text="Label With Image (Inc)" GridPane.rowIndex="5">
<graphic><Region styleClass="javasuns_logo" /></graphic>
</Label>
<Label cache="true" text="Label With Image (Def)" GridPane.rowIndex="6">
<graphic><Region styleClass="javasuns_logo" /></graphic>
</Label>
<Button styleClass="increased_font" text="Button With Image (Inc)" GridPane.rowIndex="7">
<graphic><Region styleClass="javasuns_logo" /></graphic>
</Button>
<Button text="Button With Image (Def)" GridPane.rowIndex="8">
<graphic><Region styleClass="javasuns_logo" /></graphic>
</Button>
</children>
</GridPane>
CSS:Test.css
.increased_font {
-fx-font-size: 1.3em;
}
.javasuns_logo {
-fx-font-size: null;
-fx-pref-height: 2em;
-fx-pref-width: 4em;
-fx-background-image: url('../../icons/logo/javasuns.png');
-fx-background-size: 4em;
-fx-background-repeat: no-repeat;
-fx-background-position: center;
}
答案 0 :(得分:0)
我知道这是一个古老的问题,但我现在也在努力解决这个问题。我发现当你使用pref-height和pref-width时,你不能在同一个类中使用-fx-font-size导致它&#34;重置&#34; .root -fx-font-size为默认值12.
我想在某些按钮中设置特定的字体大小,以及使用em值设置宽度和高度。这是不可能的,所以我在Button元素中创建了一个Label,在这里我可以正确调整标签字体大小。因此,如果我不在相同的类/同一控件中使用font-size和pref-width / height,它看起来就像是在工作。