【问题标题】:LWUIT TextArea doesn't catch touch eventsLWUIT TextArea 不捕捉触摸事件
【发布时间】:2012-02-10 13:44:49
【问题描述】:

我通过TextAreaCheckBox 制作了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方法。

【问题讨论】:

    标签: java-me checkbox touch lwuit lwuit-textarea


    【解决方案1】:

    如果我正确理解了这个问题,您正在尝试创建一个由多个不同组件组装而成的复合组件,以像单个组件一样工作。在 LWUIT/Codename One 中,这称为Lead Component,附加的帖子主要是关于资源编辑器的,但这些概念也适用于手动编码。 只需将“复选框”设置为您的线索,一切都会正常。

    您可以通过派生和覆盖来手动编写代码,但您会遇到一些小的边缘情况,例如样式状态的更改(聚焦/按下状态等)

    【讨论】:

      【解决方案2】:

      最好是derive TextArea 类为getTextArea() 方法。然后在这个类中实现pointerReleased 方法:在其中编写以正常方式执行的操作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-07-27
        • 1970-01-01
        • 2011-06-03
        • 1970-01-01
        • 2015-08-12
        • 1970-01-01
        • 1970-01-01
        • 2011-04-18
        相关资源
        最近更新 更多