如何在游戏中获得原生键盘。

时间:2011-05-21 04:52:06

标签: java-me native lwuit keypad

我有一个使用LWUIT开发的游戏。现在我在游戏中实现全触摸。这是一个多人游戏,所以有一些选项,如聊天和登录。当我们按聊天时,我们需要输入字段中的字符。我的问题是

当我们按下聊天按钮时,是否可以调用本机键盘。?

提前谢谢 克里斯

1 个答案:

答案 0 :(得分:1)

没有。 MIDP不包含这样的API。你可以使用LWUIT的虚拟键盘(它不是原生的)并定义你想要的任何字符集,如下所述: http://lwuit.blogspot.com/2010/06/pimp-virtualkeyboard-by-chen-fishbein.html

您可以使用显示类来显示它。

在Symbian设备上,如果您没有定义一些jad属性,触摸键盘将始终可见,您无法隐藏它以获取更多详细信息: http://lwuit.blogspot.com/2009/11/optimized-for-touch.html

再次看一下这个问题,我认为VKB可能对于总是更换小键盘来说太过分了。只需将您的内容放在BorderLayout的中心,并在南方贴一个容器,如下所示:

addComponent(BorderLayout.CENTER, myUI);
Container keypad = new Container(new GridLayout(2, 2));
addComponent(BorderLayout.SOUTH, keypad);
Button up = new Button("Up");
Button down = new Button("Down");
Button left = new Button("Left");
Button right = new Button("Right");
up.setFocusable(false);
down.setFocusable(false);
left.setFocusable(false);
right.setFocusable(false);
keypad.addComponent(up);
keypad.addComponent(down);
keypad.addComponent(left);
keypad.addComponent(right);
up.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent ev) {
       int up = Display.getInstance().getKeyCode(Display.GAME_UP);
       Display.getInstance().getCurrentForm().keyPressed(up);
       Display.getInstance().getCurrentForm().keyReleased(up);
    }
});

其余的和重要的是添加(同样的事情)注意到getKeyCode已被弃用但现在应该可以使用,因为我们没有替代API。