2013-08-22 3 views
6

Я использую Ubuntu 13.04 и кодирую приложение для отображения некоторых меток (используя класс Label). Я также попытался использовать класс Text и установить тип сглаживания на ЖК-дисплей. Результат тот же, шрифт выглядит размытым, его поля разбросаны, и вы должны установить его размер на довольно большое число, чтобы быть читаемым (обратите внимание, что у меня есть какой-то текстовый абзац).Можно ли улучшить рендеринг шрифта JavaFX 2/8?

Я знаю, что JavaFX2 имеет подпиксельную визуализацию ЖК-дисплея, но все же можно что-то сделать, чтобы шрифт не выглядел таким уродливым? (может быть, мне что-то не хватает на 2.X или не знаю о существовании чего-либо в 8.X)

Есть ли способ проверить, активна ли поддержка субпикселя ЖК-дисплея?

С уважением,

+0

См [а DEV список рассылки нить на рендеринг шрифтов JavaFX] (http://mail.openjdk.java.net/pipermail/openjfx-dev/2013-August/009822.html). – jewelsea

+1

Как говорит парень Oracle: «В Linux мы предоставляем бэкэнд freetype, но, скорее всего, он не будет включен по умолчанию (это означает, что мы будем использовать T2K там). Не думаю, что у меня будет время исправить Linux на этот раз ». здесь https://javafx-jira.kenai.com/browse/RT-14187, я хотел бы указать на 3 вещи: 1. посмотрите шрифт eclipse на Linux, а затем посмотрите, как выглядит шрифт JavaFX. 2. МЫ ПРЕДЛАГАЕМ БЫТЬ ПЕРЕКРЕСТНОЙ ПЛАТФОРМОЙ?!?! 3. У Android могут быть голограммы, пока вы не получите этот инструментарий правильно. – aureliangtx

+1

Кажется, эта проблема не проблема на платформе Windows, как это ни печально, кажется, что решение проблем, затрагивающих Windows, имеет преимущество перед теми, которые влияют на (намного лучше) Linux-платформы. – Kerry

ответ

8

Используйте

System.setProperty("prism.lcdtext", "false"); 
System.setProperty("prism.text", "t2k"); 

оба или один момент времени.

0

Изменение шрифта всего приложения на 'Ubuntu Light', дает мне прекрасный внешний вид. Я также пробовал некоторые другие шрифты, но они ухудшили внешний вид.

Шаг 1: Добавьте следующий стиль в application.css файл.

.text { 
    -fx-font-family: "Ubuntu Light"; 
} 

Шаг 2: Применить стиль к вашей материнской сцене.

scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm()); 
Смежные вопросы