Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem JavaFX - Jak definovat velkost textu v pixelech?

Dobrý den,

Potřebuji definovat velikost textu v pixelech a našel jsem, jak by měl přepočet vypadat

double fontSize= 72.0 * pixelSize / Toolkit.getDefaultToolkit().getScreenResolution();

Bohužel není správný. V příkladu níže mé text cca 95 pixelů

import java.awt.Toolkit;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.scene.text.Font;
import javafx.scene.text.Text;
import javafx.stage.Stage;

public class TextHeight extends javafx.application.Application  {

    @Override
    public void start(Stage stage) {
        var text = new Text("EXAMPLE");
        var fontSize = 100 * Toolkit.getDefaultToolkit().getScreenResolution() / 72.0;
        text.setFont(Font.loadFont(getClass().getResourceAsStream("GT Pressura Mono Regular Regular.ttf"), fontSize));
        text.setFill(Color.BLUE);
        text.setX(0);
        text.setY(100); 
        var pane = new Pane(text, new Rectangle(500, 0, 10, 100));
        stage.setScene(new Scene(pane, 600, 120));
        stage.show();
    }

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

[]

Jak to, prosím Vás, správně vypočítat?

Děkuji

Předmět Autor Datum
Jak jsi prisel na to, ze velikost textu = vyska velkych pismenek z fontu? https://scribus.cz/zaklad…
MaSo 22.02.2021 07:26
MaSo
Promiňte, špatně jsem se vyjádřil. Chtěl jsem říct, že bych chtěl, aby měla velká písmena tolik pixe…
MichalDM 22.02.2021 11:09
MichalDM
No to se právě takhle definovat nedá. Což by ses dozvěděl, kdyby sis přečetl ten článek.
Wikan 22.02.2021 11:16
Wikan
A alespoň přibližně by to nešlo? Nepotřebuji nutně přesnou hodnotu, stačí s odchylkou 1-2px.
MichalDM 22.02.2021 12:41
MichalDM
Jestli ti chybí 5 px, tak to zvětši zhruba o 5 %. Pokud ale změníš font, tak to zase může být jinak.
Wikan 22.02.2021 12:49
Wikan
Měnit font (ke stažení zde) nebudu, ale nechci kód, který bude závislý pouze na jednom rozlišení. Je… poslední
MichalDM 24.02.2021 17:51
MichalDM

Zpět do poradny Odpovědět na původní otázku Nahoru