小编Rou*_*man的帖子

JavaFX - 在 TextFlow 中垂直居中文本

我目前正在使用 JavaFX'TextTextFlow布局,我需要弄清楚如何将Text节点放在TextFlow. 如下图所示,我添加了一些ImageView's 来模拟我想要添加的表情符号。

问题是,它们的对齐方式不同。当表情符号居中时,文本保持在底部。

绿色边框线代表TextFlow的边框,蓝色边框线代表的边框Text

预览

我已经尝试将 Text 的textOrigin属性设置为CENTER,但在我的情况下它不会改变任何东西。设置textAlignmentCENTER也不起作用。

这是我的代码摘录:

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), …
Run Code Online (Sandbox Code Playgroud)

layout text javafx textflow

6
推荐指数
1
解决办法
1350
查看次数

标签 统计

javafx ×1

layout ×1

text ×1

textflow ×1