Zielony Smok

JavaFX canvas: Atrybut tekstu ‘font smoothing’

Atrybut: font smoothing

Typ: FontSmoothingType

Wartość domyślna: FontSmoothingType.GRAY.

Getter: FontSmoothingType getFontSmoothingType()

Setter: void setFontSmoothingType(FontSmoothingTypeVPos)

Save/restore: true

Opis: Sposób wygładzania tekstu (antialiasing) stosowany do glifów w czcionce we wszystkich operacjach
renderowania wypełnienia tekstu. Są dwie możliwości

  • GRAY – domyślne
  • LCD – używane tylko na nieprzezroczystym tle. Na przezroczystym czy częściowo przezroczystym
    tle będzie identyczny z GRAY. W implementacjach, gdzie nie używa się kanału alfa – jest
    niedostępny.

Atrybut tekstu ‘font smoothing’

Klasa Listing25_51

Ściągnij klasę Listing25_51

package rozdzial25c;

import javafx.application.Application;
import javafx.application.Platform;
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.scene.text.FontSmoothingType;
import javafx.scene.text.FontWeight;
import javafx.stage.Stage;

public class Listing25_51 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, 300);
            GraphicsContext gc = cv.getGraphicsContext2D();
            //
            gc.setFont(Font.font("Dialog", FontWeight.BOLD, 60));
            //-
            gc.setFontSmoothingType(FontSmoothingType.GRAY);
            gc.fillText("Aria i Suita", 50, 100);
            //-
            gc.setFontSmoothingType(FontSmoothingType.LCD);
            gc.fillText("Aria i Suita", 50, 200);
            //-
            FontSmoothingType fst = gc. getFontSmoothingType();
            System.out.println(fst);
            //-
            root.getChildren().add(cv);
            Scene scene = new Scene(root);
            stage.setScene(scene);
            stage.setTitle("Atrybut tekstu 'font smoothing'");
            stage.setOnCloseRequest(e -> Platform.exit());
            stage.show();

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
LCD
Rys. 25_57