最近我使用Swing开发了一个桌面应用程序“酒店管理系统”,并且运行良好!
但是现在最新的要求是应用程序应该是 telugu 字体!这意味着应用程序的GUI应该在 telugu 中,账单和报告以及应用程序中的所有内容都应该在 telugu ...
所以我的问题是,这可能吗?如果是这样,那么应该使用什么技术和波动来实现这一目标呢? 如果有任何新的东西应该与Swing一起应用,那么我很想学习它并在我的应用程序中使用它!
请帮帮我。我不知道如何做到这一点。
答案 0 :(得分:1)
只要您做好准备,更改默认字体并不是特别困难。
看看Custom Fonts for Jasper Reports如何将字体与Jasper Reports捆绑在一起。建议您与官方文档和论坛核实更多最新信息。
网上有很多例子,只需为Google做“Jasper Reports自定义字体”
为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倾向于使用固定宽度字体,因为它的外观和感觉,将字体更改为可变宽度字体将改变您的布局。
答案 1 :(得分:0)
也可以不使用字体。使用泰卢固语Unicode显示泰卢固语,甚至是JASPER报告。我使用telugu unicode开发英语到Telugu Transliterator而不使用任何字体系统。只需在telugu,kannada,hindi中配置所有标签名称,并使用音译器加载。