Почему рендеринг шрифтов Java Swing html выглядит так глупо? - PullRequest
1 голос
/ 21 октября 2010

Чтобы отобразить сложную многострочную метку с несколькими стилями, я использую возможности рендеринга Swing html и в итоге получаю действительно дрянное отображение шрифтов.

Я попытался явно установить семейство шрифтов -

infoLabel.setText("<html><span style='font-family:Tahoma;'>My text..

Но по сравнению с текстом, отличным от HTML, JLabel с текстом HTML всегда выглядит очень некрасиво, похоже, что сглаживания не происходит. Я пробовал свойство CSS с гладким шрифтом:

<html><span style="font-family:Tahoma;font-smooth:always;">

Но рендеринг HTML от Swing все еще выглядит ужасно. Если я не использую html-стилизацию в setText, это выглядит нормально. Я гарантирую, что я использую то же семейство шрифтов, размер шрифта и т. Д.

В чем может быть проблема?

Ответы [ 2 ]

1 голос
/ 22 октября 2010

Попробуйте запустить вашу программу с флагом -Dswing.aatext=true, это заставит ее использовать сглаживание.

Если вам нужно сложное моделирование, вы можете использовать JTextPane.Сделайте его прозрачным, не редактируемым, удалите границу, и она будет выглядеть как ярлык.Вы можете применять различные стили, они будут отображаться с сглаживанием, и вам не придется иметь дело с html, его поддержка не так хороша.

1 голос
/ 21 октября 2010

Интересно, возможно, вам придется указывать стиль отдельно, например

"<html><style type = 'text/css'> span {font-family: Tahoma;} ...... <span>...."

, а не добавлять его непосредственно в тег span.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...