Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用操作侦听器对一个容器进行编码_Java_Mobile_Codenameone - Fatal编程技术网

Java 使用操作侦听器对一个容器进行编码

Java 使用操作侦听器对一个容器进行编码,java,mobile,codenameone,Java,Mobile,Codenameone,我正在开发我的第一款代号为One的移动应用程序。我试图让容器对正常的单击操作事件做出反应。 我有一个容器(注意这不是一个swing容器,而是一个代号为one的容器),它在一个可滚动的框Y_轴布局中包含列表元素。到现在为止,一直都还不错。这些元素本身就是容器,其中包含标签、图像和星形滑块 现在,当用户单击整个元素容器中的任意位置时,我想切换到另一个表单以显示该条目的详细信息。 但是,容器不提供添加操作侦听器的功能。仅仅实现actionlistener接口也没有帮助。下一个问题是,codename

我正在开发我的第一款代号为One的移动应用程序。我试图让容器对正常的单击操作事件做出反应。 我有一个容器(注意这不是一个swing容器,而是一个代号为one的容器),它在一个可滚动的框Y_轴布局中包含列表元素。到现在为止,一直都还不错。这些元素本身就是容器,其中包含标签、图像和星形滑块

现在,当用户单击整个元素容器中的任意位置时,我想切换到另一个表单以显示该条目的详细信息。 但是,容器不提供添加操作侦听器的功能。仅仅实现actionlistener接口也没有帮助。下一个问题是,codename one容器也没有鼠标侦听器,因为移动应用程序没有鼠标可点击

那么,如何识别单击容器


感谢并致以最诚挚的问候

创建一个按钮,并将其提供给actionListener,然后将其设置为容器的leadComponent,好处是您不必将其添加到容器中

Button myBtn = new Button();
myBtn.addActionListener(e -> {
    //go to other form here
});

Container myCont = new Container();
myCont.setLeadComponent(myBtn);

在评论中找到了我自己问题的答案

按照Diamond的说明设置lead component后,您可以通过设置
setBlockLead(true)

以上面的例子为例,我们可以通过以下方式对其进行扩展:

Button leadBtn = new Button();
leadBtn.addActionListener(e -> {
    //Handle action of the lead button
});

Button anotherBtn = new Button();
anotherBtn.addActionListener(e -> {
    //Handle action of the another button
});

Container myCont = new Container();
myCont.add(leadBtn);
myCont.add(anotherBtn);
myCont.setLeadComponent(leadBtn);
anotherBtn.setBlockedLead(true);

只是添加了额外的注释来解释为什么这不是重复的。这不是一个普通的JavaSwing容器,而是一个代码名为one的框架。在这种情况下,容器既没有动作也没有鼠标侦听器。那么,如果你的问题不是与Swing相关的问题,为什么要将其标记为Swing?你没有提供太多关于代码的信息,但根据你所说的,我将执行以下操作:将图像设置为按钮并将ActionListener附加到它。将容器设置为前置组件。(container.setLeadComponent(button)。这样,整个容器将采用按钮操作。@HovercraftFullOfEels请重新打开问题,我有答案,并且
swing
标记已被删除。(-1)请阅读或重新阅读评论。这不是一个Swing问题,因此您的答案,最基本的Swing类型的代码答案,与手头的问题无关。上面的代码完全是源于Swing的codenameone。因此,此答案非常准确。嘿,请将拇指放下,让提问者首先给出反馈。谢谢我很高兴能澄清这一点,也很感谢你的解决方案,我将对此进行测试!这对我也很有帮助,所以我也要感谢你。不过,我在这里还有另外一点。我的容器有两个按钮,一个按钮应该是主组件,它可以对容器中的任何地方的点击做出反应,第二个按钮像“关闭”按钮,该按钮仅在单击按钮时应对操作作出反应。容器上是否可能有一个铅组件和额外的小按钮?