JavaFX8 TextArea skallieren

airtime

Mitglied
Hallo,

ich versuche mich in JavaFX einzuarbeiten und konnte mit einigen Tutorials schon viel lernen und auch das meiste erstellen was ich wollte.
Momentan versuche ich eine Textarea in ein Fenster einzubauen welches sich anhand der Größe des Fensters auch in der Größe verändert.
Zunächst erstmal nur in x-Richtung, für die y-Richtung konnte ich eine Höhe festlegen und sobald mehr in der TextArea steht wird ein Scrollbalken eingefügt.
In x-Richtung möchte ich aber das sich die Area immer anpasst.
Mit Pref-Column oder-Row hatte ich schon herumprobiert aber da ist die Größe eher festgelegt und verändert sich nicht
Anbei mein code in der start-Methode, ich hatte das binding ausprobiert, jedoch wird dann das Padding und Spacing auf der rechten Seite nicht gemacht.
Nachdem code habe ich auch ein Scrennshot des resultats eingefügt eingefügt
Java:
public void start(Stage primaryStage) throws Exception
    {
        HBox hBox = new HBox();
       
        final TextArea htextArea = new TextArea();
        //textArea.setPrefRowCount(10);
        //textArea.setPrefColumnCount(20);
        htextArea.setWrapText(true);
        htextArea.setScrollTop(Double.MIN_VALUE);
        htextArea.prefWidthProperty().bind(hBox.widthProperty());
        Group hTAgroup = new Group(htextArea);
        hTAgroup.autosize();
       
        hBox.setAlignment(Pos.CENTER);
        hBox.setPadding(new Insets(5));
        hBox.setSpacing(5);
        hBox.setHgrow(hTAgroup, Priority.ALWAYS);
        hBox.getChildren().addAll(hTAgroup);
       
        BorderPane main_window = new BorderPane();
        main_window.setTop(hBox);

        Scene scene = new Scene(main_window, 800, 600);
       
        primaryStage.setScene(scene);
        primaryStage.show();
    }
upload_2017-5-26_9-16-28.png

Wie kann ich den die TextArea zwingen sich der Größe anzupassen und dabei immer einen kleinen Abstand zum Fensterrand zu lassen?

Gruß Air
 
Ok,

bin drauf gekommen.
Es liegt an der Group, hatte es noch von einem anderen Beispiel mit übernommen.
Die nodes in der Group unterliegen keinem bestimmten Layou oder size.
Wenn ich aber die TextArea in der hBox verpacke und dann die hBox in die Group aufnehme funktioniert die Size Bestimmung weil die hBox das dann wohl übernimmt.
Im folgenden sind die drei Zeilen die ich verändert habe:
Java:
        Group hTAgroup = new Group();
        hBox.getChildren().addAll(htextArea);
        hTAgroup.getChildren().add(hBox);
Ich hoffe das hilft auch anderen und wenn meine Eklärung total falsch ist bitte korrigiert mich.

Grüße Air
 
Zurück