java - 单击按钮时调整文本字段的大小

标签 java javafx

我正在尝试调整 TextField 的大小,当单击 startBtnClick 时,我似乎无法让它工作。基本上我想在单击按钮时将字段缩小 110 单位。

行动事件:

@FXML
protected void startBtnClick(){
    double txtWidth = this.url.getWidth();
    this.url.setPrefWidth(txtWidth - 110);
}

XML:

<?xml version="1.0" encoding="UTF-8"?>
<AnchorPane fx:id="anchorPane" minHeight="200.0" minWidth="200.0" prefHeight="600.0" prefWidth="1200.0" styleClass="anchor-pane" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/2.2" fx:controller="phantom.FXMLDocumentController">
    <children>
        <Button id="beginSurfing" fx:id="quitSurfing" mnemonicParsing="false" onAction="#stopSurfing" prefHeight="29.0" prefWidth="93.00009999999747" text="Quit Surfing" visible="false" AnchorPane.rightAnchor="9.0" AnchorPane.topAnchor="8.0" />
        <GridPane prefHeight="600.0" prefWidth="1200.0" style="" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
            <children>
                <AnchorPane prefHeight="200.0" prefWidth="200.0" GridPane.columnIndex="0" GridPane.rowIndex="0">
                    <children>
                        <TextField fx:id="url" disable="false" onAction="#urlGo" opacity="1.0" prefWidth="965.0" scaleZ="1.0" style="" translateZ="0.0" AnchorPane.leftAnchor="122.0" AnchorPane.rightAnchor="113.0" AnchorPane.topAnchor="9.0">
                            <stylesheets>
                                <URL value="@../CSS/textField.css" />
                            </stylesheets>
                        </TextField>
                        <Button id="beginSurfing" fx:id="startSurfing" mnemonicParsing="false" onAction="#beginSurfing" prefHeight="29.0" prefWidth="93.00009999999747" text="Start Surfing" AnchorPane.rightAnchor="12.0" AnchorPane.topAnchor="9.0" />
                        <Label fx:id="timer" alignment="CENTER" contentDisplay="CENTER" prefHeight="29.0" prefWidth="94.0" text="" textAlignment="CENTER" underline="false" AnchorPane.rightAnchor="11.0" AnchorPane.topAnchor="9.0">
                            <font>
                                <Font name="System Bold" size="20.0" />
                            </font>
                        </Label>
                        <Button id="beginSurfing" fx:id="nextAdBtn" mnemonicParsing="false" onAction="#nextAd" prefHeight="30.000099999997474" prefWidth="94.0" text="Next Ad" visible="false" AnchorPane.rightAnchor="12.0" AnchorPane.topAnchor="8.0" />
                    </children>
                </AnchorPane>
                <!--
                    The rest of the gird
                    Chopped off for readability
                -->
            </children>
        </GridPane>
    </children>
</AnchorPane>

最佳答案

由于您的按钮位于 AnchorPane 中,并且您设置了左右 anchor ,因此宽度将由这些 anchor 控制,而不是由 prefWidth属性(property)。如果您希望能够动态调整控件的大小,AnchorPane 可能不是最好的方法,但您可以这样做

AnchorPane.setRightAnchor(url, AnchorPane.getRightAnchor(url)+110);

关于java - 单击按钮时调整文本字段的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23616720/

相关文章:

java - 在下周六之前获取毫秒数

java - 为什么Java认为从10到99所有数字的乘积都是0?

Java - 使用 DOM 解析 xml

JavaFX - 将数据存储到相应的按钮

JavaFX Dialog getResult() 方法未返回正确的泛型类型

JavaFX 2 BorderPane 使用完整空间

java - 通往外部存储的安全路径

java - 删除和重命名目录中多个文件时出现问题

java - 在 JavaFX 的节点的子列表中查找特定节点

java - 使用 vlc api 在 Javafx 中播放视频