文本对齐不适用于 TextFlow
Alignment of Text not working on TextFlow
我是 javafx 新手。
我正在尝试构建一个聊天面板显示消息的 Messenger。
我想对齐消息,就像我自己的消息在左边,其他消息在右边。
为了显示消息,我在添加文本的地方使用了 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);
但是对齐不起作用。两个文本都在左边。
我该怎么办?
您可以从 TextFlow 设置 TextAlignement,但是,我不认为我们可以在同一个容器中有两个对齐方式,但是,您可以使用一种巧妙的方式来避开使用 Labels & 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;
}
为什么要 标签?此节点的工作方式与文本节点相同,但优点是湿可以调整背景大小。
为什么 VBox ?是可选的,即使我认为 TextFlow 更适合文本节点。也是为了定位,VBox更适合从上到下的分类项目聊天面板。祝你好运!
我是 javafx 新手。
我正在尝试构建一个聊天面板显示消息的 Messenger。 我想对齐消息,就像我自己的消息在左边,其他消息在右边。
为了显示消息,我在添加文本的地方使用了 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);
但是对齐不起作用。两个文本都在左边。 我该怎么办?
您可以从 TextFlow 设置 TextAlignement,但是,我不认为我们可以在同一个容器中有两个对齐方式,但是,您可以使用一种巧妙的方式来避开使用 Labels & 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;
}
为什么要 标签?此节点的工作方式与文本节点相同,但优点是湿可以调整背景大小。
为什么 VBox ?是可选的,即使我认为 TextFlow 更适合文本节点。也是为了定位,VBox更适合从上到下的分类项目聊天面板。祝你好运!