【问题标题】:Alignment of Text not working on TextFlow文本对齐在 TextFlow 上不起作用
【发布时间】:2016-11-23 06:49:32
【问题描述】:

我是 javafx 的新手。

我正在尝试构建一个聊天面板显示消息的信使。 我想对齐消息,就像我自己的消息在左侧,其他消息在右侧。

为了显示消息,我使用了 TextFlow,我在其中添加了文本。但是对齐不起作用。

TextFLow tf=new TextFlow();
Text t1= new Text("Hi");
Text t2= new Text("Hello");
t1.setTextAlignment(TextAlignment.RIGHT);
t2.setTextAlignment(TextAlignment.LEFT);
tf.getChildren().addAll(t1,t2);

但对齐不起作用。两个文本都在左边。 我该怎么办?

【问题讨论】:

    标签: text javafx alignment textflow


    【解决方案1】:

    您可以从 TextFlow 设置 TextAlignement,但是,我不认为我们可以在同一个容器中设置两个对齐方式,但是,您可以通过使用标签来解决这个问题& VBox:

    private VBox Chat(){
    
        VBox chat = new VBox();
        chat.setPrefSize(400, 400);
        chat.setStyle("-fx-background-color:#333333;");
    
        Label txt1 = new Label("Text1");
        txt1.setTextFill(Color.WHITE); 
        txt1.setPrefWidth(400); 
        txt1.setAlignment(Pos.CENTER_LEFT);
    
        Label txt2 = new Label("Text2");
        txt2.setTextFill(Color.WHITE); 
        txt2.setPrefWidth(400); 
        txt2.setAlignment(Pos.CENTER_RIGHT);  
    
        chat.getChildren().addAll(txt1,txt2);
    
        return chat;
    }
    

    为什么要标签?此节点的工作方式与 Text 节点相同,但优点是wet 可以调整背景大小。

    为什么是 VBox ?是可选的,即使我认为 TextFlow 更适合文本节点。也是为了定位,VBox更适合上下聊天面板分类项目。祝你好运!

    【讨论】:

      猜你喜欢
      • 2012-03-12
      • 2016-11-07
      • 1970-01-01
      • 2012-01-25
      • 2011-03-24
      • 2012-09-12
      • 2016-05-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多