我通过Container
和TextArea
制作了CheckBox
个化合物。在我的应用中,我创建了这么多“Containers
”并在其中添加了TextArea
ActionListener
(由类实现)。像这样:
for(int i = 0 ; i<20;i++){
MyContainer c = new MyContainer();
TextArea t = c.getTextArea();
t.addActionListener(this);
}
我希望TextArea
能够捕获该事件,如果按下该事件,则将CheckBox
选中或取消选中。它在非触摸设备和模拟器中工作正常,但在触摸设备或模拟器中,TextArea
无法捕获事件。我尝试将TextArea
作为Container
的主要组成部分,但它不起作用,因为Container
没有addActionListener
方法。
答案 0 :(得分:2)
如果我正确理解了这个问题,那么您正在尝试创建一个由多个不同组件组合而成的复合组件,以充当单个组件。在LWUIT / Codename One中,这称为Lead Component,附加的帖子主要是关于资源编辑器,但这些概念也适用于手动编码。 只需将“复选框”设置为您的主管,一切都应该有效。
你可以通过派生和覆盖来手动编码,但是你会有一些小的边缘情况,比如样式状态的改变(聚焦/按下状态等)
答案 1 :(得分:0)
derive
方法的TextArea
类getTextArea()
更好。然后在这个类中实现pointerReleased
方法:对以正常方式执行的操作进行编码。