1

最近我使用 Swing 开发了一个桌面应用程序“酒店管理系统”,效果很好!

但现在最新的要求是应用程序应该是泰卢固字体!这意味着应用程序的 GUI 应该是泰卢固语,账单和报告以及应用程序中的所有内容都应该是泰卢固语......

所以我的问题是,这可能吗?如果是这样,那么应该使用什么技术和摆动来实现这一点?
如果任何新的东西应该与 Swing 一起应用,那么我很想学习它并在我的应用程序中使用它!

请帮帮我。我不知道如何做到这一点。

4

2 回答 2

1

只要您做好准备,更改默认字体并不是特别困难。

查看Jasper Reports 的自定义字体,了解如何将您的字体与 Jasper Reports 捆绑在一起。还建议查看官方文档和论坛以获取更多最新信息。

网上有很多例子,只需谷歌一下“Jasper Reports custom fonts”

为 Swing 设置所需的字体并不难,但很大程度上取决于您使用的外观和感觉如何存储它的属性。

现在取决于系统上是否安装了字体,或者您是否将字体作为嵌入式资源提供,您可能需要也可能不需要执行以下操作。

如果您不依赖系统上安装的字体,而是自己提供它,那么您需要加载它。

// Load the font, for example "Telugu.ttf"
String fName = "/fonts/" + name;
InputStream is = null;
try {
    InputStream is = DemoFonts.class.getResourceAsStream(fName);
    font = Font.createFont(Font.TRUETYPE_FONT, is);
} finally {
    try {
        is.close();
    } catch (Exception exp) {
    }
}

否则,您应该能够使用所需的字体系列名称简单地创建Font对象。Telugu

接下来,您要将当前外观使用的默认字体更改为您想要使用的字体。这必须在您安装外观和感觉之后以及在您创建任何 UI 元素之前。

Object[] keys = keySet.toArray(new Object[keySet.size()]);

for (Object key : keys) {

    if (key != null && key.toString().toLowerCase().contains("font")) {

        Object oValue = UIManager.getDefaults().get(key);

        if (oValue != null) {

            String value = oValue == null ? null : UIManager.getDefaults().get(key).toString();
            UIManager.put(key, font);

        }

    }

}

现在,您需要注意 Swing 在外观和感觉上默认倾向于使用固定宽度字体,将字体更改为可变宽度字体会改变您的布局。

于 2013-03-01T11:50:58.477 回答
0

It is also possible without using fonts. Use Telugu Unicode to display telugu language and even for JASPER reports. I developed English to Telugu Transliterator using telugu unicode without using any font system. Just configure all label names in telugu, kannada, hindi and load with transliterator.

于 2013-05-13T07:56:41.440 回答