代码之家  ›  专栏  ›  技术社区  ›  MartinStettner

Java Swing应用中的希腊/拉丁科学JLAPP

  •  2
  • MartinStettner  · 技术社区  · 15 年前

    对于一个科学应用程序,我想设计一个输入表单,允许用户输入某些参数。其中有些是用希腊字母命名的,有些是用拉丁字母命名的。参数名应使用普通 JLabel 控制。

    在Windows上, 塔霍马 字体(默认情况下用于标签)同时包含拉丁字母和希腊字母,因此我只需将标签的文本属性设置为希腊(unicode)字符串,一切正常。

    我想知道在Linux和OSX系统上是否也可以不用修改。对于Java/OS版本来说,这是可行的。

    另外,我想知道是否有一种简单的方法可以在标签中显示下标(在tex中是“\eta_0”),但这对我的应用程序来说并不重要…

    2 回复  |  直到 15 年前
        1
  •  5
  •   Gunslinger47    15 年前

    我毫不怀疑,绝大多数unicode字体都包括希腊块。

    在所有平台上,对于所有地区。

    当缺少unicode块时,这是为了节省空间。希腊文块中大约50个字符与数千个东亚字符(我的最后一个Linux桌面实际上默认包括了这些字符)相比,算不上什么。

    说到奇特的Unicode: http://en.wikipedia.org/wiki/Unicode_subscripts_and_superscripts

    当然,尽管您或我可能有任何信心,但在部署之前,您应该在尽可能多的配置上测试应用程序。Java尽其所能,但在实践中,我总能找到一些需要拨号的东西。

        2
  •  1
  •   trashgod    15 年前

    @枪手47的回答是果断的,但你也可以看看这个 game 在不同的目标平台上。它显示几个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);
        ...
    }