我已经通过 TextArea
和 CheckBox
制作了一个 Container
复合体。在我的应用程序中,我创建了很多这样的“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
方法。
最佳答案
如果我正确理解了这个问题,您正在尝试创建一个由多个不同组件组装而成的复合组件,以充当单个组件。在 LWUIT/Codename One 中,这称为 Lead Component ,所附文章主要是关于资源编辑器的,但这些概念也适用于手动编码。 只需将“复选框”设置为您的线索,一切就会正常。
您可以通过派生和覆盖来手动编码,但您会遇到一些小的边缘情况,例如样式状态的更改(聚焦/按下状态等)
关于java-me - LWUIT TextArea 无法捕获触摸事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9175831/