鸿 网 互 联 www.68idc.cn

当前位置 : 服务器租用 > 手机系统开发 > J2ME > >

"用户界面和多媒体"版面问题[二][j2medev][0406更新]

来源:互联网 作者:佚名 时间:2015-08-02 08:10
“由于我的 CustomItem 控件和一个 Gauge 控件同处于一个 Form 上,所以按上下左右键的时候,实际上被 Form 处理了, Form 就认为上下左右键是在切换控件的焦点,而不会把这个按键事件传给我的 CustomItem 了。也就是说,我的写法一样不会得到上下左右键的按

“由于我的CustomItem控件和一个Gauge控件同处于一个Form上,所以按上下左右键的时候,实际上被Form处理了,Form就认为上下左右键是在切换控件的焦点,而不会把这个按键事件传给我的CustomItem了。也就是说,我的写法一样不会得到上下左右键的按键事件。”

-- zhengyun

?

“一部手机是否实际支持CustomItem internal traversal,需要向getInteractionModes()方法查询才可知道,因为这是隐含的策略,并不是一定的。听说,在Nokia真机上,traverse好像并不好使用。

在我这里,这段代码在模拟器上能够使用,在真机上我不敢保证:

?

以下内容为程序代码:

???? protected boolean traverse(int dir,int viewportWidth,

??? int viewportHeight,int visRect_inout[])

? {

????????? System.out.println("Enter traverse");

?

???????? if(dir == Canvas.UP){

?????? System.out.println("traverse>>Press Up key!");

????????????? return true;

????????? }else if(dir == Canvas.DOWN){

???? System.out.println("traverse>>Press Down key!");

????????????? return true;

????????? }else if(dir == NONE){

???? System.out.println("traverse>>Press None key!");

????????????? return true;

????????? }

?

????????? return false;

? }

???? protected void traverseOut(){

???????? System.out.println("Enter traverse out");

???? }

-- zhengyun

?

protected boolean traverse(int dir, int viewportWidth, int viewportHeight,?? int[] visRect_inout) {

?

? switch (dir) {

? case Canvas.DOWN:

?? if (location == UPPER) {

??? location = IN;

?? } else {

? ??repaint();

??? location = LOWER;

??? return false;

?? }

?? break;

?

? case Canvas.UP:

?? if (location == LOWER) {

??? location = IN;

?? } else {

??? repaint();

??? location = UPPER;

??? return false;

?? }

?? break;

?

? case Canvas.LEFT:

?? System.out.println("LEFT");

?? break;

? case Canvas.RIGHT:

?? System.out.println("RIGHT");

?? break;

? }

? return true;

}

实际上在FORM里的左右键事件,也被用来处理焦点,只不过在CUSTOM ITEM里左右键没有响应,用上下键来处理焦点事件了。”

---hebaochen

网友评论
<