я определил FXML с GridPane 8 строк, который содержит следующие компоненты (FXML и CSS определения приведены в конце этой нити):JavaFX: Узел повторно размер не работает, как ожидалось
- 2 CheckBoxes,
- 2 Этикетки,
- 2 Этикетки с областью и
- 2 Кнопки с областью
область здесь используется т o загружать изображения, которые выполняются с помощью стиля CSS. Для каждого набора компонентов, определенных выше (например, 2 флажка), я беру его, и я увеличил его размер, используя стиль -fx-font-size. В частности, я определяю размер шрифта как "1.3xDefault_System_Font_Size (12)". Теги (INC) и (DEF) в тексте каждого компонента используются для описания того, увеличен ли размер шрифта или осталось значение по умолчанию.
Как вы можете видеть на скриншоте выше, метка флажка увеличивается, но сама коробка не сделал. То же самое относится и к изображениям, что их размер не увеличивался, но размер метки делался.
Это становится хуже, когда я изменить размер шрифта по умолчанию в .root:
.root{
-fx-font-size: 28;
}
В приведенном выше примере, так как я изменил размер шрифта по умолчанию от 12 до 28, я надеюсь, что все этикетки и изображения для изменения их размер в соответствии с этим новым размером. Размер изображения определяется размером -fx-background, который является 4em.
Однако все ярлыки увеличены правильно, но изображения правильно установлены только на этих узлах с тегом DEF. То же самое относится и к флажку, где его ярлык и коробка увеличены на DEF, тогда как один с тегом только размер этикетки увеличился правильно, и коробка осталась маленькой.
Есть ли способ сделать изображения и коробка флажок, чтобы правильно увеличить их размер? Это ошибка, или я делаю что-то неправильно?
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;
}