SceneBuilder 中的 GridPane 调整
GridPane adjustments in SceneBuilder
目前我正在尝试为我的 Zoo 数据库应用程序制作一个 GUI,但我不知道如何设置我的 GridPane
以完全按照我希望的方式工作。
我的问题是,我想让左侧 始终保持相同的大小 并且只有 TableView
和过滤 table 下面的 textField
可以调整大小。
在下面的屏幕上,您可以看到它从一开始的样子。另外,我不知道如何将狮子 imageView
居中,就像我将上面的所有 buttons
和 textFields
居中一样。
任何提示都很好,谢谢! :)
StackPanes 非常擅长将事物居中。此外,如果您在 SplitPane 中设置根 AnchorPane 的 minWidth、maxWidth 和 preferedWidth。那一面再也无法与场景的其余部分一起成长。
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.SplitPane?>
<?import javafx.scene.control.TableColumn?>
<?import javafx.scene.control.TableView?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.image.Image?>
<?import javafx.scene.image.ImageView?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.StackPane?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.text.Font?>
<AnchorPane id="AnchorPane" prefHeight="546.0" prefWidth="732.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8.0.111" fx:controller="javafxapplication109.FXMLDocumentController">
<children>
<Label fx:id="label" layoutX="126" layoutY="120" minHeight="16" minWidth="69" />
<SplitPane dividerPositions="0.3078078078078078" layoutX="26.0" layoutY="120.0" prefHeight="160.0" prefWidth="200.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<items>
<AnchorPane maxWidth="200.0" minHeight="0.0" minWidth="200.0" prefHeight="160.0" prefWidth="200.0">
<children>
<VBox layoutX="29.0" layoutY="26.0" prefHeight="200.0" prefWidth="100.0" AnchorPane.bottomAnchor="10.0" AnchorPane.leftAnchor="10.0" AnchorPane.rightAnchor="10.0" AnchorPane.topAnchor="50.0">
<children>
<Label text="Name" />
<TextField />
<Label text="Specie" />
<TextField />
<Label text="Age" />
<TextField />
<Label text="Cage" />
<TextField />
<Button maxWidth="1.7976931348623157E308" mnemonicParsing="false" text="Add">
<VBox.margin>
<Insets top="10.0" />
</VBox.margin>
</Button>
<StackPane prefHeight="180.0" VBox.vgrow="ALWAYS">
<VBox.margin>
<Insets top="20.0" />
</VBox.margin>
<children>
<ImageView fitHeight="150.0" fitWidth="180.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@../img/java2.jpg" />
</image>
</ImageView>
</children>
</StackPane>
<StackPane maxWidth="1.7976931348623157E308">
<children>
<Label text="ZOO APPLICATION">
<font>
<Font name="System Bold" size="12.0" />
</font>
</Label>
</children>
</StackPane>
</children>
</VBox>
</children>
</AnchorPane>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="544.0" prefWidth="520.0">
<children>
<TableView layoutX="65.0" layoutY="80.0" prefHeight="200.0" prefWidth="200.0" AnchorPane.bottomAnchor="10.0" AnchorPane.leftAnchor="10.0" AnchorPane.rightAnchor="10.0" AnchorPane.topAnchor="10.0">
<columns>
<TableColumn prefWidth="45.0" text="ID" />
<TableColumn prefWidth="105.0" text="Name" />
<TableColumn prefWidth="108.33334350585938" text="Specie" />
<TableColumn prefWidth="41.666656494140625" text="Age" />
<TableColumn prefWidth="75.0" text="Cage" />
<TableColumn prefWidth="124.33331298828125" text="Action" />
</columns>
</TableView>
</children>
</AnchorPane>
</items>
</SplitPane>
</children>
</AnchorPane>
Normal screen size:
Fullscreen size:
You can make the adjustments for your TableColumns.
目前我正在尝试为我的 Zoo 数据库应用程序制作一个 GUI,但我不知道如何设置我的 GridPane
以完全按照我希望的方式工作。
我的问题是,我想让左侧 始终保持相同的大小 并且只有 TableView
和过滤 table 下面的 textField
可以调整大小。
在下面的屏幕上,您可以看到它从一开始的样子。另外,我不知道如何将狮子 imageView
居中,就像我将上面的所有 buttons
和 textFields
居中一样。
任何提示都很好,谢谢! :)
StackPanes 非常擅长将事物居中。此外,如果您在 SplitPane 中设置根 AnchorPane 的 minWidth、maxWidth 和 preferedWidth。那一面再也无法与场景的其余部分一起成长。
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.SplitPane?>
<?import javafx.scene.control.TableColumn?>
<?import javafx.scene.control.TableView?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.image.Image?>
<?import javafx.scene.image.ImageView?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.StackPane?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.text.Font?>
<AnchorPane id="AnchorPane" prefHeight="546.0" prefWidth="732.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8.0.111" fx:controller="javafxapplication109.FXMLDocumentController">
<children>
<Label fx:id="label" layoutX="126" layoutY="120" minHeight="16" minWidth="69" />
<SplitPane dividerPositions="0.3078078078078078" layoutX="26.0" layoutY="120.0" prefHeight="160.0" prefWidth="200.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<items>
<AnchorPane maxWidth="200.0" minHeight="0.0" minWidth="200.0" prefHeight="160.0" prefWidth="200.0">
<children>
<VBox layoutX="29.0" layoutY="26.0" prefHeight="200.0" prefWidth="100.0" AnchorPane.bottomAnchor="10.0" AnchorPane.leftAnchor="10.0" AnchorPane.rightAnchor="10.0" AnchorPane.topAnchor="50.0">
<children>
<Label text="Name" />
<TextField />
<Label text="Specie" />
<TextField />
<Label text="Age" />
<TextField />
<Label text="Cage" />
<TextField />
<Button maxWidth="1.7976931348623157E308" mnemonicParsing="false" text="Add">
<VBox.margin>
<Insets top="10.0" />
</VBox.margin>
</Button>
<StackPane prefHeight="180.0" VBox.vgrow="ALWAYS">
<VBox.margin>
<Insets top="20.0" />
</VBox.margin>
<children>
<ImageView fitHeight="150.0" fitWidth="180.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@../img/java2.jpg" />
</image>
</ImageView>
</children>
</StackPane>
<StackPane maxWidth="1.7976931348623157E308">
<children>
<Label text="ZOO APPLICATION">
<font>
<Font name="System Bold" size="12.0" />
</font>
</Label>
</children>
</StackPane>
</children>
</VBox>
</children>
</AnchorPane>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="544.0" prefWidth="520.0">
<children>
<TableView layoutX="65.0" layoutY="80.0" prefHeight="200.0" prefWidth="200.0" AnchorPane.bottomAnchor="10.0" AnchorPane.leftAnchor="10.0" AnchorPane.rightAnchor="10.0" AnchorPane.topAnchor="10.0">
<columns>
<TableColumn prefWidth="45.0" text="ID" />
<TableColumn prefWidth="105.0" text="Name" />
<TableColumn prefWidth="108.33334350585938" text="Specie" />
<TableColumn prefWidth="41.666656494140625" text="Age" />
<TableColumn prefWidth="75.0" text="Cage" />
<TableColumn prefWidth="124.33331298828125" text="Action" />
</columns>
</TableView>
</children>
</AnchorPane>
</items>
</SplitPane>
</children>
</AnchorPane>
Normal screen size:
Fullscreen size:
You can make the adjustments for your TableColumns.