我正在使用内部带有文本字段的 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 中,当它位于弹出窗口中时,似乎没有任何效果。我可以做什么来解决这个问题?
也尝试设置
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");
}
}