【问题标题】:JavaFX resize text with windowJavaFX 用窗口调整文本大小
【发布时间】:2015-06-01 15:41:40
【问题描述】:

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

如何在没有 eventHandlers 的 JavaFX 中实现这一点?

如果我使用Label,文本会被换行并且宽度也会改变,但是窗口的初始高度不适合整个文本,所以文本被剪裁了。

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

【问题讨论】:

    标签: text javafx resize label


    【解决方案1】:

    如果您想使用Text,可以将其wrappingWidthProperty 绑定到scenes'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());
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-11
      • 1970-01-01
      • 2014-07-04
      • 2020-06-07
      相关资源
      最近更新 更多