Java 如何使用Swigs将桌面应用程序中的英文字体转换为泰卢固字体
最近,我使用Swing开发了一个桌面应用程序“酒店管理系统”,它工作得很好 但是现在最新的要求是应用程序应该是泰卢固字体!这意味着应用程序的GUI应该是telugu,账单、报告和应用程序中的所有内容都应该是telugu 所以我的问题是,这可能吗?如果是这样的话,那么应该使用什么技术和秋千来实现这一点呢?Java 如何使用Swigs将桌面应用程序中的英文字体转换为泰卢固字体,java,swing,fonts,Java,Swing,Fonts,最近,我使用Swing开发了一个桌面应用程序“酒店管理系统”,它工作得很好 但是现在最新的要求是应用程序应该是泰卢固字体!这意味着应用程序的GUI应该是telugu,账单、报告和应用程序中的所有内容都应该是telugu 所以我的问题是,这可能吗?如果是这样的话,那么应该使用什么技术和秋千来实现这一点呢? 如果有什么新的东西应该与Swing一起应用,那么我渴望学习它并在我的应用程序中使用它 请帮帮我。我不知道如何做到这一点。只要你做好准备,更改默认字体并不特别困难 看看如何将字体与Jasper报告
如果有什么新的东西应该与Swing一起应用,那么我渴望学习它并在我的应用程序中使用它
请帮帮我。我不知道如何做到这一点。只要你做好准备,更改默认字体并不特别困难 看看如何将字体与Jasper报告捆绑在一起。建议您向官方文档和论坛查询更多最新信息 网上有很多例子,只需在谷歌上搜索“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) {
}
}
否则,您应该能够使用所需的Telugu
Font族名称简单地创建Font
对象
接下来,您需要将当前外观使用的默认字体更改为您想要使用的字体。这必须在安装外观之后和创建任何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在外观和感觉上默认使用固定宽度字体,将字体更改为可变宽度字体将改变您的布局。只要您做好准备,更改默认字体并不特别困难 看看如何将字体与Jasper报告捆绑在一起。建议您向官方文档和论坛查询更多最新信息 网上有很多例子,只需在谷歌上搜索“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) {
}
}
否则,您应该能够使用所需的Telugu
Font族名称简单地创建Font
对象
接下来,您需要将当前外观使用的默认字体更改为您想要使用的字体。这必须在安装外观之后和创建任何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在外观和感觉上默认使用固定宽度字体,将字体更改为可变宽度字体将改变您的布局。也可以不使用字体。使用Telugu Unicode显示Telugu语言,甚至用于JASPER报告。我使用泰卢古unicode开发了英语到泰卢古的音译,没有使用任何字体系统。只需在泰卢固语、卡纳达语、印地语中配置所有标签名称,并使用音译器加载即可。也可以不使用字体。使用Telugu Unicode显示Telugu语言,甚至用于JASPER报告。我使用泰卢古unicode开发了英语到泰卢古的音译,没有使用任何字体系统。只需在泰卢固语、卡纳达语、印地语中配置所有标签名称,并使用音译器加载即可。是否可能?对如果新字体的宽度可变,则会影响布局,因此请小心。摇摆部分相对容易,这取决于您使用的外观和感觉。你的报告是另一回事。您使用的是什么外观和感觉?您的报告是如何生成的?@MadProgrammer这些报告是使用jasper生成的。我使用的是windows xp系统的外观我现在不在我的图片中,但我可以告诉你Jasper会有一些问题,这很可能,但是你需要提供Jasper能够访问的Jar文件中字体的所有变体是的,但是我仍然不知道如何处理它!可能吗?对如果新字体的宽度可变,则会影响布局,因此请小心。摇摆部分相对容易,这取决于您使用的外观和感觉。你的报告是另一回事。您使用的是什么外观和感觉?您的报告是如何生成的?@MadProgrammer这些报告是使用jasper生成的。我使用的是windows xp系统的外观我现在不在我的图片中,但我可以告诉你Jasper会有一些问题,这很可能,但是你需要提供Jasper能够访问的Jar文件中字体的所有变体是的,但是我仍然不知道如何处理它!