Javafx 文本字段扩展到弹出窗口的宽度

问题描述 投票:0回答:1

我正在使用内部带有文本字段的 JavaFX 弹出窗口,并且我试图减小文本字段的宽度,但弹出窗口阻止了这种情况,而是文本字段始终增长到弹出窗口的宽度。

public class InputPopup extends Popup {

  public InputPopup() {
    VBox vBox = new VBox();
    vBox.setPrefWidth(200);
    vBox.setPrefHeight(200);
    vBox.setPadding(new Insets(15));
    vBox.setSpacing(10);
    vBox.setAlignment(Pos.CENTER);

    Button closeBtn = new Button("Close");
    closeBtn.setOnAction(e -> this.hide());

    TextField textField = new TextField();
    textField.setMaxWidth(40.0);
    textField.setPrefWidth(40.0);
    textField.setMinWidth(40.0);

    vBox.getChildren().addAll(textField, closeBtn);
    getContent().add(vBox);
  }
}

我尝试过使用 setPrefWidth、setPrefSize、setMinSize、setMaxSize,我尝试将其放入 hBox 中,当它位于弹出窗口中时,似乎没有任何效果。我可以做什么来解决这个问题?

java javafx javafx-8
1个回答
0
投票

也尝试设置

Popup
的宽度。

import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.scene.layout.VBox;
import javafx.stage.Popup;

public class InputPopup extends Popup {

  public InputPopup() {
    VBox vBox = new VBox();
    vBox.setPrefWidth(250);
    vBox.setPrefHeight(250);
    vBox.setPadding(new Insets(15));
    vBox.setSpacing(10);
    vBox.setAlignment(Pos.CENTER);

    Button closeBtn = new Button("Close");
    closeBtn.setOnAction(e -> this.hide());

    TextField textField = new TextField();
    textField.setMaxWidth(40.0);
    textField.setPrefWidth(40.0);
    textField.setMinWidth(40.0);

    vBox.getChildren().addAll(textField, closeBtn);
    getContent().add(vBox);
    this.setWidth(250);
    this.setHeight(250);
    vBox.setStyle("-fx-background-color: yellow");
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.