11

如何TextField在 JavaFX 中设置 a 的宽度?

TextField userTextField = new TextField();

我试过这个:

TextField userTextField = new TextField();
userTextField.setPrefWidth(80);

但我没有看到任何变化。

4

3 回答 3

16

工作得很好:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.TextField;
import javafx.stage.Stage;

public class TextFieldWidthApp extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception {
        TextField userTextField = new TextField();
        userTextField.setPrefWidth(800);
        primaryStage.setScene(new Scene(userTextField));
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }

}
于 2013-11-07T18:51:45.740 回答
3

只需在创建 TextField 后设置此方法:

TextField myTf = new TextField();
myTf.setPrefWidth(80);
myTf.setMaxWidth(80);
于 2019-05-02T00:07:45.970 回答
0

我遇到了同样的问题(这就是我登陆此页面的方式),我通过将文本字段放入 HBox 来修复它。如果 texfield 只是单独放在兄弟是布局管理器的父组件中,则可能会出现问题。例如,将它与 VBox 或 HBox 或子 GridLayout 一起放在 GridLayout 中。这是执行此操作的代码;

HBox hbForTextField = new HBox();
TextField sample = new TextField();
sample.setAlignment(Pos.CENTER);//Align text to center
sample.setPrefWidth(120);//Set width

//Add the texfield to the HBox
hbForTextField.getChildren().addAll(generatedPassword);

然后,您可以将 HBox 添加到根或其他父布局管理器。

于 2019-05-01T08:15:56.460 回答