Css JavaFX:节点重新大小未按预期工作

Css JavaFX:节点重新大小未按预期工作,css,checkbox,javafx,font-size,em,Css,Checkbox,Javafx,Font Size,Em,我定义了一个包含8行GridPane的FXML,其中包含以下组件(FXML和CSS定义在本线程末尾给出): 2个复选框 2个标签 2个标签,带有区域和 2个带区域的按钮 这里的区域用于将图像加载到中,这是通过CSS样式完成的。对于上面定义的每一组组件(例如2个复选框),我选择其中一个,并使用-fx font-size样式增加其大小。特别是,我将字体大小定义为“1.3xDefault\u System\u font\u size(12)”。每个组件文本中的标记(INC)和(DEF)用于描述字体

我定义了一个包含8行GridPane的FXML,其中包含以下组件(FXML和CSS定义在本线程末尾给出):

  • 2个复选框
  • 2个标签
  • 2个标签,带有区域和
  • 2个带区域的按钮
这里的区域用于将图像加载到中,这是通过CSS样式完成的。对于上面定义的每一组组件(例如2个复选框),我选择其中一个,并使用-fx font-size样式增加其大小。特别是,我将字体大小定义为“1.3xDefault\u System\u font\u size(12)”。每个组件文本中的标记(INC)(DEF)用于描述字体大小是增大还是保留为默认值

从上面的屏幕截图可以看到,复选框的标签增加了,但复选框本身没有增加。这同样适用于图像,它们的大小没有增加,但标签大小增加了

在.root中更改默认字体大小时,情况会变得更糟:

.root{
    -fx-font-size: 28;
}
在上面的示例中,因为我将默认字体大小从12更改为28,所以我希望所有标签和图像都根据这个新的大小更改大小。图像大小由-fx背景大小定义,即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>

我知道这是个老问题,但我现在也在努力解决这个问题。我发现,当使用pref height和pref width时,不能在同一类中使用-fx font size,因为它会将.root-fx font size“重置”为默认值12


我想在一些按钮中设置特定的字体大小,并使用em值设置宽度和高度。它不是;不可能,所以我在Button元素内创建了一个标签,在这里我可以正确调整标签字体大小。因此,如果我不在同一类/同一控件中使用字体大小和pref width/height,它看起来就正常工作了

我知道这是个老问题,但我现在也在努力解决这个问题。我发现,当使用pref height和pref width时,不能在同一类中使用-fx font size,因为它会将.root-fx font size“重置”为默认值12

我想在一些按钮中设置特定的字体大小,并使用em值设置宽度和高度。它不是;不可能,所以我在Button元素内创建了一个标签,在这里我可以正确调整标签字体大小。因此,如果我不在同一类/同一控件中使用字体大小和pref width/height,它看起来就正常工作了

.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;
}