Греческий / латинский научный JLABEL в приложении Java Swing
-
25-09-2019 - |
Вопрос
Для научного приложения я хочу разработать входную форму, которая позволяет пользователю ввести определенные параметры. Некоторые из них обозначены с использованием греческих букв, некоторые из них имеют латинские буквы. Имена параметров должны отображаться с использованием обычных JLabel
контроль.
На окнах, Тахомас Шрифт (который используется для этикеток по умолчанию) содержит как латинские, так и греческие буквы, поэтому я просто устанавливаю свойство текста этикетки на строку греческого (Unicode) и все работает нормально.
Мне интересно, работает ли это также без модификаций в системах Linux и OSX. для которых версии Java / OS это будет работать.
Также мне интересно, если есть простой способ показать подписками в этикетках (« eta_0» в Tex), но это не так важно для моего приложения ...
Решение
Я не сомневаюсь, что подавляющее большинство шрифтов Unicode включает в себя греческий блок.
На всех платформах и для всех локалей.
Когда отсутствуют блоки Unicode, это для космических проблем. 50 или около того персонажей в греческом блоке ничто по сравнению с тысячами восточноазиатских персонажей (которые мой последний рабочий стол Linux фактически включен по умолчанию, BTW).
Говоря о модном Unicode: http://en.wikipedia.org/wiki/unicode_subscripts_and_superscripts.
Конечно, несмотря на любую уверенность в том, что вы или у меня могут быть, вы должны проверить ваше приложение на столь же конфигурации, как вы можете до развертывания. Java пытается лучше всего, но на практике я всегда нашел несколько вещей, которые нуждались в Tweeeeking.
Другие советы
@ Ответ 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);
...
}