2010年2月18日星期四

Db4o Object Manager中文菜单和数据乱码解决

Db4o是很好的面向对象的数据库,小巧但功能强大,最近研究了一下,发现真的很好用,官方还提供了数据库管理界面ObjectManager,可以用GUI的方式查看或者查询数据,但使用过程中发现 ObjctManager7.4在我的Win7下中文菜单和数据显示乱码,网上搜索了下,好像其他版本也有类似问题,但没有提供解决办法,经过一番研究,终于找到原因,并成功解决:
原因是源程序中设置了界面主题,导致乱码。通过修改源代码,把设置主题的代码注释掉重新编译后,虽然界面不如原先的好看,但中文不乱码看着就舒服多了。
http://code.google.com/p/db4o-om/source/checkout 下载trunk/objectmanager-swing(版本号)的源代码到Eclipse,如果Eclipse报错,一般根据报错提示,到Build Path--Configure Build Path...重新设置所需要的jar文件,一般这些jar文件在下载到的Object Managerlib下面都有。
找到src下面

1. com.db4o.objectManager.v2.Dashboard.java 的configureUI()方法,注释以下代码:
String lafName =
//LookUtils.IS_OS_WINDOWS_XP
//  ? Options.getCrossPlatformLookAndFeelClassName() :
Options.getSystemLookAndFeelClassName();
try {
UIManager.setLookAndFeel(lafName);
} catch (Exception e) {
System.err.println("Can't set look & feel:" + e);
}

找到 buildInterface()方法
把frame.setSize(600, 510);
改成frame.setSize(690, 560);
把打开软件的第一个界面稍微改大一些。

2. com.db4o.objectManager.v2.MainFrame.java configureUI()方法
注释以下代码:
try {
UIManager.setLookAndFeel(selectedLaf);
} catch (Exception e) {
System.out.println("Can't change L&F: " + e);
}

3. com.db4o.objectManager.v2.configuration.ConfigurationDialog configureUI()方法
注释以下代码:
String lafName = Options.getSystemLookAndFeelClassName();
try {
UIManager.setLookAndFeel(lafName);
} catch (Exception e) {
System.err.println("Can't set look & feel:" + e);
}

一共三个Java文件,改好后,重新编译成objectmanager.jar替换掉原来的objectmanager.jar即可。
如果觉得这样做太麻烦,可以下载我已经编译好的jar文件:http://cid-8b61c3bbf29e8e7a.skydrive.live.com/self.aspx/Coding/objectmanager.jar
发表评论