JavaFXでTextField
の幅を設定するにはどうすればよいですか?
TextField userTextField = new TextField();
私はこれを試しました:
TextField userTextField = new TextField();
userTextField.setPrefWidth(80);
しかし、変化は見られません。
かなりうまくいきます:
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);
}
}
TextFieldを作成した後で、このメソッドを設定するだけです。
TextField myTf = new TextField();
myTf.setPrefWidth(80);
myTf.setMaxWidth(80);
私は同じ問題を抱えていて(それがこのページにたどり着いた方法です)、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をルートまたはその他の親レイアウトマネージャーに追加できます。