Греческий / латинский научный JLabel в приложении Java Swing - PullRequest
2 голосов
/ 10 мая 2010

Для научного применения я хочу разработать форму ввода, которая позволяет пользователю вводить определенные параметры. Некоторые из них обозначены греческими буквами, некоторые имеют латинские буквы. Имена параметров должны отображаться с использованием обычных JLabel элементов управления.

В Windows шрифт Tahoma (который используется для меток по умолчанию) содержит как латинские, так и греческие буквы, поэтому я просто устанавливаю свойство Text метки на греческую (юникод) строку и все отлично работает.

Мне интересно, работает ли это также без изменений в системах Linux и OSX соответственно. для каких версий Java / OS это будет работать.

Также мне любопытно, есть ли простой способ показать подписки в метках ("\ eta_0" в TeX), но это не так важно для моего приложения ...

Ответы [ 2 ]

5 голосов
/ 10 мая 2010

Я не сомневаюсь, что подавляющее большинство шрифтов Unicode включает греческий блок.

На всех платформах и для всех локалей.

Когда отсутствуют блоки Unicode, это для экономии места. Примерно 50 символов в греческом блоке - ничто по сравнению с тысячами символов Восточной Азии (кстати, мой последний рабочий стол Linux фактически включен по умолчанию).

Кстати, о модном Unicode: http://en.wikipedia.org/wiki/Unicode_subscripts_and_superscripts

Конечно, несмотря на любую уверенность, которая может быть у вас или у меня, вы должны протестировать свое приложение на максимально возможном количестве конфигураций перед его развертыванием. Java старается изо всех сил, но на практике я всегда находил несколько вещей, которые нуждались в настройке.

1 голос
/ 10 мая 2010

@ Ответ Gunslinger47 является диспозитивным, но вы также можете посмотреть эту игру на различных целевых платформах. Он отображает глифы из нескольких диаграмм кодов символов Unicode, включая греческий.

enum GlyphSet {

    ASCII(0x0021, 0x007E), Greek(0x0370, 0x03FF), Letters(0x2100, 0x214F),
    Operators(0x2200, 0x22FF), Miscellany(0x2300, 0x23FF), Borders(0x2500, 0x257F),
    Symbols(0x2600, 0x26FF), Dingbats(0x2700, 0x27BF), Arrows(0x2900, 0x297F);
    ...
}
...