LWUIT标签导航/列表焦点问题

时间:2012-02-15 16:01:14

标签: lwuit lwuit-form lwuit-list lwuit-tabs

我在表单上嵌入了3个“TABS”。每个标签都有一个“列表”。每当我将焦点从一个标签更改为另一个标签时,我希望我的列表具有焦点。如何确保我的列表始终具有焦点? 我使用gameKeyEvents进行导航。我已经为我的表单添加了一个actionListener用于游戏键事件。我无法覆盖表单的keyReleased()方法,因为我需要向表单添加一个动作侦听器(它还包含其他命令)。

我尝试覆盖我的'Tabs'类的keyreleased()方法,但那不起作用(为什么?)。没有任何事情发生。

Tabs holder = new Tabs()
    {
        public void keyReleased(int keyEvent)
    {
    System.out.println("key release is working"); // this statement does not work
    }
      };

当我通过左右键导航来移动标签时,我的列表会失去焦点(它们的选择显示为淡化),而在其他时候它们保持焦点(它们的选择显示为实心)。 如何确保我的列表始终具有焦点?这对我的计划来说非常重要。我附上了快照。请协助。

请参阅附图。

在图1中,您将看到列表项3突出显示。现在,如果我按左/右/下游戏键......焦点将从列表中消失并转到第3个位置的选项卡。我想要防止这个。 (无法发布图片,因为我是新用户。请查看链接)

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:2)

导出表格并覆盖keyReleased/keyPresed以检测右/左游戏键。

当你得到一个右键或左键时,永远不要调用super(在其他情况下总是调用super)。

keyPressed方法中,如果向右/向左,只需切换选项卡并调用适当列表的requestFocus()方法。

您需要从Tabs组件中获取选项卡按钮,并将它们设置为焦点为false,以防止列表失去焦点。

相关问题