在JavaFX中设置TextField宽度

时间:2013-11-07 18:10:23

标签: javafx-2 javafx javafx-8

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

TextField userTextField = new TextField();

我试过了:

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

但我没有看到任何改变。

3 个答案:

答案 0 :(得分:15)

工作得很好:

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);
    }

}

答案 1 :(得分: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添加到根目录或其他父布局管理器中。

答案 2 :(得分:0)

    TextField.setPrefWidth(80);
    TextField.setMaxWidth(80);