7

誰かがJavaFX2キャンバスにテキストを中央揃えする方法の例を教えてもらえますか?

GraphicsContextにはsetTextAlignのような関数がいくつかありますが、これらすべてのメソッドの使用方法と、本当に必要なメソッドがわかりません。テキストを垂直方向と水平方向の中央に配置したい。

4

2 に答える 2

21
  1. テキストを中央に揃えます。
  2. テキストのベースラインを中央に設定します。
  3. キャンバスの中央にテキストを描画します(キャンバスの幅と高さの半分に配置します)。

サンプルは次のとおりです。

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); }
}

キャンバスの中央に配置されたテキスト

于 2013-02-14T20:17:45.927 に答える
0

使いたい

  control.setAlignment(Pos.CENTER); and

  control.setStyle("-fx-alignment: CENTER;");

この動作のダウンロード可能なサンプルコードについては、こちらを参照してください。

于 2013-02-14T19:55:02.350 に答える