小编wle*_*lek的帖子

JavaFX:自定义网格窗格中的按钮宽度

我想在网格窗格中具有相等(最大)宽度的按钮。

当我试图直接在 FXML 中设置它时 - 它完美地工作。

<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.layout.*?>
<AnchorPane xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"
            fx:controller="TestController">
    <children>
        <GridPane AnchorPane.leftAnchor="0" AnchorPane.rightAnchor="0" AnchorPane.bottomAnchor="0"
                  AnchorPane.topAnchor="0">
            <columnConstraints>
                <ColumnConstraints hgrow="SOMETIMES" percentWidth="50.0"/>
                <ColumnConstraints hgrow="SOMETIMES" percentWidth="50.0"/>
            </columnConstraints>
            <children>
                <Button maxWidth="Infinity" text="Button1" GridPane.columnIndex="0"/>
                <Button maxWidth="Infinity" text="Button2" GridPane.columnIndex="1"/>
            </children>

        </GridPane>
    </children>
</AnchorPane>
Run Code Online (Sandbox Code Playgroud)

但是当我想将整个网格分成一个自定义控件时,按钮停止填充可用宽度。

这是一个 FXML:

<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.layout.*?>
<?import CustomGridPane?>
<AnchorPane xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"
            fx:controller="TestController">
    <children>
        <CustomGridPane AnchorPane.leftAnchor="0" AnchorPane.rightAnchor="0" AnchorPane.bottomAnchor="0" AnchorPane.topAnchor="0">
        </CustomGridPane>
    </children>
</AnchorPane>
Run Code Online (Sandbox Code Playgroud)

还有一个扩展:

public class CustomGridPane extends GridPane {

    private Button button1 = new Button("button1"); …
Run Code Online (Sandbox Code Playgroud)

javafx button custom-controls width gridpane

3
推荐指数
1
解决办法
5925
查看次数

标签 统计

button ×1

custom-controls ×1

gridpane ×1

javafx ×1

width ×1