Rou*_*man 6 layout text javafx textflow
我目前正在使用 JavaFX'Text和TextFlow布局,我需要弄清楚如何将Text节点放在TextFlow. 如下图所示,我添加了一些ImageView's 来模拟我想要添加的表情符号。
问题是,它们的对齐方式不同。当表情符号居中时,文本保持在底部。
绿色边框线代表TextFlow的边框,蓝色边框线代表的边框Text。
我已经尝试将 Text 的textOrigin属性设置为CENTER,但在我的情况下它不会改变任何东西。设置textAlignment为CENTER也不起作用。
这是我的代码摘录:
public CChatMessage(String senderName, String messageText)
{
this.sender = new Label(senderName);
this.sender.setTextAlignment(TextAlignment.CENTER);
this.sender.setFont(Font.font("Verdana", FontWeight.EXTRA_BOLD, 14));
this.message = new Text(messageText);
this.message.setTextAlignment(TextAlignment.CENTER);
this.message.setTextOrigin(VPos.CENTER);
this.setEffect(new DropShadow());
this.setAlignment(Pos.CENTER);
this.setPadding(new Insets(0, 10, 10, 10));
TextFlow messagePane = new TextFlow();
messagePane.setStyle("-fx-border-color: green");
messagePane.setTextAlignment(TextAlignment.CENTER);
Image smileyImage = new Image("/resources/smiley.png");
messagePane.getChildren().addAll(this.message, new ImageView(smileyImage), new ImageView(smileyImage), new ImageView(smileyImage),
new ImageView(smileyImage), new ImageView(smileyImage), new ImageView(smileyImage));
if(!senderName.equals(""))
{
CChatMessage.setMargin(messagePane, new Insets(10, 0, 0, 0));
this.message.setFont(Font.font("Calibri", FontWeight.SEMI_BOLD, 18));
this.getChildren().addAll(this.sender, messagePane);
}
else
{
this.setPadding(new Insets(5, 5, 5, 5));
message.setFont(Font.font("Verdana", FontWeight.EXTRA_BOLD, 11));
this.getChildren().add(messagePane);
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:我认为这就是您正在寻找的答案:https://bugs.openjdk.java.net/browse/JDK-8098128
编辑2:看来我下面给出的解决方案有问题。文本节点中的单词不会保留在 HBox 中。到目前为止,我还没有弄清楚如何解决这个问题。但当文本节点位于 TextFlow 容器内时,它确实保留在内部。
那里已经给出了该问题的解决方案。我不完全理解,但我希望你能理解。
我只会留下我原来的答案,因为它包含我处理问题的方式。
这个解决方案可能有效。在无法像这样将文本节点居中后,我找到了这个解决方法:我没有使用 TextFlow,而是使用了 HBox。它帮我完成了工作。行为非常相似,我可以按照我想要的方式对齐文本节点。
但请注意,我只是一个新手。因此,如果您使用此方法,可能会出现问题。我对 TextFlow 和 HBox 的属性了解不够,无法自信地回答。但我只是想告诉你我的解决方案,因为这就是我现在用于我的项目的解决方案。(编辑:正如您在上面的编辑 2 中所读到的那样,我遇到了一个问题。可能还有更多问题。):)
快乐编码。
| 归档时间: |
|
| 查看次数: |
1350 次 |
| 最近记录: |