星期三, 九月 10, 2008

me4se的中文输入简单支持

手机应用如果不能输入中文的话,和废物没什么区别。
前两天吧me4se-2.2.0修改了在我的Zaurus上运行,发现不能输入中文。
要输入中文其实很简单。只要把ScmWrapper的keyTyped事件实现一下。


=== modified file 'src/org/me4se/scm/ScmWrapper.java'
--- /old/src/org/me4se/scm/ScmWrapper.java 2008-09-09 09:04:47 +0000
+++ /new/src/org/me4se/scm/ScmWrapper.java 2008-09-10 08:59:05 +0000
@@ -312,6 +312,11 @@
}

public void keyTyped(KeyEvent ev) {
+ char c = ev.getKeyChar();
+ if (c > 256) {
+ component.keyPressed(c + "");
+ }
+ ev.consume();
//component.keyTyped(ev.getKeyChar());
}

4 条评论:

  1. 谢谢!使用你的方法已经可以输入中文了,但是,ME4SE 还是无法显示中文(我试了,它本身的标题栏放置汉字可以正常显示,只是 midlets 里的汉字不行,我也试了改javax/microedition/midlet/ApplicationManager 中的static final String DEFAULT_ENCODING,但是好像没效果),都显示成方块,请指教如何解决.

    回复删除
  2. 可能是字体问题,你查一下Me4se用的字体能不能显示中文。
    看看org.me4se.impl.lcdui.AwtFont的代码。

    回复删除
  3. 楼主可否将完全修改好的me4se发给我一份,非常感谢。wangjianping119#126.com
    如果zaurus能将手机上的java软件和游戏运行起来那就更爽了,目前软件不多呀。

    回复删除
  4. 谢谢,你说得很对!!
    其实那天我留了评论后“坚持不懈”,终于改了字体,能正常显示了:)我先改成宋体,效果不是很好,改成新宋体,比较好,但是只能显示中文,改成 system,结果好了,仿佛是“自适应的”:)

    回复删除