Ich habe eine FXML mit einem GridPane von 8 Zeilen definiert ist, die die folgenden Komponenten enthalten (FXML und CSS-Definitionen werden am Ende dieses Gewindes angegeben):JavaFX: Node Wiedergröße funktioniert nicht wie erwartet
- 2 Checkbox,
- 2 Labels,
- 2 Etikett mit einer Region und
- 2 Tasten mit einer Region
Die Region hier t verwendet wird, Laden Sie Bilder, die über einen CSS-Stil erstellt wurden. Für jeden Satz der oben definierten Komponenten (zum Beispiel die 2 Checkboxen), nehme ich den einen und ich vergrößere seine Größe, indem ich das -fx-font-size Styling verwende. Insbesondere definiere ich die Schriftgröße zu "1.3xDefault_System_Font_Size (12)". Die Tags (INC) und (DEF) im Text jeder Komponente werden verwendet, um zu beschreiben, ob die Schriftgröße erhöht oder auf den Standardwert zurückgesetzt wird.
Wie Sie aus dem obigen Screenshot sehen können, wird das Etikett von Checkbox erhöht, aber die Box selbst nicht. Das gleiche gilt für die Bilder, dass ihre Größe nicht zugenommen hat, aber die Etikettengröße.
Dies wird noch schlimmer, wenn ich die Standard-Schriftgröße in .root ändern:
.root{
-fx-font-size: 28;
}
Im Beispiel oben, da ich die Standard-Schriftgröße von 12 bis 28 geändert, erwarte ich, dass alle Etiketten und Bilder ändern ihre Größe nach dieser neuen Größe. Die Bildgröße wird durch die -fx-Hintergrundgröße definiert, die 4em ist.
Allerdings werden alle Beschriftungen korrekt vergrößert, aber die Bilder werden nur auf den Knoten mit dem Tag DEF korrekt vergrößert. Das gleiche gilt für das Kontrollkästchen, wo es Label und Box auf dem DEF erhöht ist, während der mit dem Tag nur Etikettgröße korrekt erhöht und die Box klein blieb.
Gibt es eine Möglichkeit, Bilder und Schachtel Kontrollkästchen, um ihre Größe korrekt zu erhöhen? Ist das ein Fehler, oder mache ich etwas falsch?
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;
}