gpt4 book ai didi

text - 在 Canvas 上居中文本?

转载 作者:行者123 更新时间:2023-12-04 13:11:41 25 4
gpt4 key购买 nike

有人能给我一个关于如何在 JavaFX 2 Canvas 上居中文本的例子吗? ?

GraphicsContext有一些像 setTextAlign 这样的函数,但我不确定如何使用所有这些方法以及我真正需要哪些方法。我想垂直和水平居中我的文本。

最佳答案

  • 设置文本居中对齐。
  • 将文本基线设置为居中。
  • 在 Canvas 中央绘制文本(通过将其定位在 Canvas 宽度和高度的一半处)。

  • 这是一个示例:
    import javafx.application.Application;
    import static javafx.application.Application.launch;
    import javafx.geometry.VPos;
    import javafx.scene.*;
    import javafx.scene.canvas.*;
    import javafx.scene.layout.StackPane;
    import javafx.scene.text.TextAlignment;
    import javafx.stage.Stage;

    public class TextCanvas extends Application {
    @Override public void start(Stage primaryStage) {
    Canvas canvas = new Canvas(175, 40);
    GraphicsContext gc = canvas.getGraphicsContext2D();
    gc.setTextAlign(TextAlignment.CENTER);
    gc.setTextBaseline(VPos.CENTER);
    gc.fillText(
    "Text centered on your Canvas",
    Math.round(canvas.getWidth() / 2),
    Math.round(canvas.getHeight() / 2)
    );

    StackPane layout = new StackPane();
    layout.getChildren().addAll(canvas);

    primaryStage.setScene(new Scene(layout));
    primaryStage.show();
    }
    public static void main(String[] args) { launch(args); }
    }

    centered text on canvas

    关于text - 在 Canvas 上居中文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14882806/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com