Zielony Smok

JavaFX canvas: Atrybut tekstu ‘text baseline’

Atrybut: text baseline

Typ: VPos

Wartość domyślna: VPos.BASELINE.

Getter: VPos getTextBaseline()

Setter: void setTextBaseline(VPos)

Save/restore: true

Opis: Pionowe wyrównanie tekstu w stosunku do współrzędnej y określającej położenie
tekstu. Mamy do wyboru cztery wartości:

  • BASELINE – linia przechodząca pod małymi literami np. m, n, o.
  • BOTTOM – linia przechodząca tuż pod tekstem, czyli pod literami np. ‘g’.
  • CENTER – linia przechodząca przez środek tekstu.
  • TOP – linia przechodząca tuż nad tekstem.

Atrybut tekstu ‘text baseline’

Klasa Listing25_50

Ściągnij klasę Listing25_50

package rozdzial25c;

import javafx.application.Application;
import javafx.application.Platform;
import javafx.geometry.VPos;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.text.Font;
import javafx.stage.Stage;

public class Listing25_50 extends Application {

    public static void main(String[] args) {
        Application.launch(args);
    }

    @Override
    public void start(Stage stage) {
        try {
            Group root = new Group();
            Canvas cv = new Canvas(500, 200);
            GraphicsContext gc = cv.getGraphicsContext2D();
            //
            gc.setFont(Font.font(40));
            gc.setTextBaseline(VPos.BASELINE);
            gc.fillText("Frog", 50, 100);
            //-
            gc.setTextBaseline(VPos.BOTTOM);
            gc.fillText("Frog", 150, 100);
            //-
            gc.setTextBaseline(VPos.CENTER);
            gc.fillText("Frog", 250, 100);
            //-
            gc.setTextBaseline(VPos.TOP);
            gc.fillText("Frog", 350, 100);
            //-
            VPos vp = gc.getTextBaseline();
            System.out.println(vp);
            //-
            gc.beginPath();
            gc.strokeLine(10,100, 450, 100);
            root.getChildren().add(cv);
            Scene scene = new Scene(root);
            stage.setScene(scene);
            stage.setTitle("Atrybut tekstu 'text baseline'");
            stage.setOnCloseRequest(e -> Platform.exit());
            stage.show();

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}          
 TOP
Atrybut tekstu 'text baseline'
Rys. 25_56. Atrybut tekstu ‘text baseline’