text - JavaFX 使用窗口调整文本大小

标签 text javafx resize label

我想在窗口中显示未知长度的文本。如果文本到达窗口的边界,则应该换行。窗口的初始高度应与文本的高度匹配。如果用户调整窗口大小,文本的宽度也应该改变。

如果没有事件处理程序,我如何在 JavaFX 中实现这一点?

如果我使用标签,文本会被换行并改变其宽度,但窗口的初始高度不适合整个文本,因此文本会被剪裁。

using Label

如果我使用文本(Text-tag),我需要指定一个环绕宽度。窗口的高度是正确的,但如果我调整窗口的大小,文本的宽度不会改变。

using Text

最佳答案

如果您想使用Text,您可以将其wrappingWidthProperty 绑定(bind)到场景的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,您可以将其prefHeightProperty场景的heightProperty 绑定(bind)。

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

关于text - JavaFX 使用窗口调整文本大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29315469/

相关文章:

javascript - 使用 jquery 从服务器上的文本文件中读取

php - XPath 和 PHP : Matching text after a <br>

java - 如何直接消除文本字段JavaFx中的字符以使用户无法输入字符?

java - 如何通过gradle运行多个Java类?

actionscript-3 - AIR - 按比例调整 native 窗口大小

java - 如何固定 Swing 组件的边界

java - 从非 Java 应用程序中抓取文本

css - 如何让这个文字变大?

java - Java FX 中的 "mnemonicParsing"属性是什么

python - 如何使用 OpenCV2.0 和 Python2.6 调整图像大小