JavaFX的调整与窗口文本(JavaFX resize text with window)

2019-10-22 10:20发布

我要显示在窗口未知长度的文本。 如果达到了窗口边框的文本应包。 窗口的初始高度应与文本的高度。 而如果用户调整窗口大小,文本的宽度也应该改变。

我怎样才能在JavaFX中实现这一点没有事件处理?

如果我使用一个标签,文本被包裹,并改变它的宽度,但窗口的初始高度不适合整个文本,所以文本进行裁剪。

如果我使用文本(文本标签),我需要指定一个包装宽度。 该window's高度是正确的,但如果我调整窗口的大小,文本的宽度不会改变。

Answer 1:

如果,你想用一个Text ,你可以将其绑定wrappingWidthPropertyscenes's widthProperty

public class Main extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception{

        VBox layout = new VBox(25);
        Text text = new Text("bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla blabla bla bla bla bla bla bla bla bla bla bla blabla bla bla blabla bla bla blabla bla bla bla");
        layout.getChildren().add(text);
        Scene scene = new Scene(layout, 200, 200);
        primaryStage.setScene(scene);
        text.wrappingWidthProperty().bind(scene.widthProperty().subtract(15));
        primaryStage.show();
    }

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

同样的,如果你想使用一个Label ,可以绑定其prefHeightPropertyscene's heightProperty

label.setWrapText(true);
label.prefHeightProperty().bind(scene.heightProperty());


文章来源: JavaFX resize text with window