为什么ActionEvent组件的类型错误?

Noelicus

MultiButton动态添加了几个,每个都有一个新的ActionListenerActionListener调用Componentis时,它is类型,Button而不是实际MultiButton对象(即,强制转换为MultiButton导致ClassCastException无法强制转换ButtonMultiButton)。

有没有办法得到MultiButton代替?还是我做了一些愚蠢的事情?

码:

Container cBob = findContainerBob(f);

cBob.removeAll();

for (String str : things) {
    MultiButton mb = new MultiButton();
    mb.setTextLine1(str);

    mb.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent evt) {
            MultiButton clickedMb = (MultiButton)evt.getComponent(); // Throws exception                
        });         

    cBob.addComponent(mb);
}
塞巴斯蒂安·霍夫纳

http://code.google.com/p/codenameone/source/browse/trunk/CodenameOne/src/com/codename1/components/MultiButton.java?r=317

如果您在codenameone中查看MultiButton的源代码,则会看到此方法:

/**
 * Adds an action listener
 * 
 * @param al the action listener
 */
public void addActionListener(ActionListener al) {
    emblem.addActionListener(al);
}

徽章是成员,并声明为Button:

private Button emblem = new Button();

因此,通过evt.getComponent()调用获得的组件确实是一个按钮。

更新:要使您的按钮成为MultiButton,您应该使用:

MultiButton multiButton = (MultiButton) evt.getComponent().getParent().getLeadParent();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么是 int 类型错误?类型错误

来自分类Dev

为什么这个函数类型“类型错误”

来自分类Dev

为什么会出现无限类型错误

来自分类Dev

为什么类型不匹配错误?

来自分类Dev

为什么会出现这些类型错误?

来自分类Dev

JetBrains Rider 建议“制作参数类型组件”。为什么?

来自分类Dev

为什么打字稿在类型联合上给出类型错误?

来自分类Dev

为什么我不断收到此错误“错误:意外类型”

来自分类Dev

通用方法触发类型安全错误-为什么?

来自分类Dev

wget用错误的名称/类型保存文件。为什么?

来自分类Dev

为什么我的扩展方法会导致类型错误?

来自分类Dev

无效的Resx文件。为什么无法加载类型错误?

来自分类Dev

为什么在Dart中允许错误的类型分配?

来自分类Dev

为什么此Ada类型定义导致编译错误?

来自分类Dev

为什么此代码不会导致TypeScript类型错误?

来自分类Dev

为什么会出现错误“类型的方法未定义”?

来自分类Dev

为什么在MYSQL中比较类型不会引发错误?

来自分类Dev

为什么PhpStorm报告“参数类型不匹配”错误?

来自分类Dev

为什么路过原始类型是不是给我的错误?

来自分类Dev

为什么我的TypeScript报告联合类型错误?

来自分类Dev

为什么我收到嵌套关联类型的Swift错误

来自分类Dev

为什么TypeScript错误地推断返回类型?

来自分类Dev

为什么TypeScript泛型抑制类型错误?

来自分类Dev

为什么我的函数会产生“冲突类型”错误?

来自分类Dev

为什么运行此功能时出现类型错误?

来自分类Dev

为什么此Ada类型定义导致编译错误?

来自分类Dev

为什么具有静态main()类型的程序显示错误?

来自分类Dev

类型转换错误时,为什么属性得到验证?

来自分类Dev

为什么设置(在组装中测试)会给出类型错误?

Related 相关文章

  1. 1

    为什么是 int 类型错误?类型错误

  2. 2

    为什么这个函数类型“类型错误”

  3. 3

    为什么会出现无限类型错误

  4. 4

    为什么类型不匹配错误?

  5. 5

    为什么会出现这些类型错误?

  6. 6

    JetBrains Rider 建议“制作参数类型组件”。为什么?

  7. 7

    为什么打字稿在类型联合上给出类型错误?

  8. 8

    为什么我不断收到此错误“错误:意外类型”

  9. 9

    通用方法触发类型安全错误-为什么?

  10. 10

    wget用错误的名称/类型保存文件。为什么?

  11. 11

    为什么我的扩展方法会导致类型错误?

  12. 12

    无效的Resx文件。为什么无法加载类型错误?

  13. 13

    为什么在Dart中允许错误的类型分配?

  14. 14

    为什么此Ada类型定义导致编译错误?

  15. 15

    为什么此代码不会导致TypeScript类型错误?

  16. 16

    为什么会出现错误“类型的方法未定义”?

  17. 17

    为什么在MYSQL中比较类型不会引发错误?

  18. 18

    为什么PhpStorm报告“参数类型不匹配”错误?

  19. 19

    为什么路过原始类型是不是给我的错误?

  20. 20

    为什么我的TypeScript报告联合类型错误?

  21. 21

    为什么我收到嵌套关联类型的Swift错误

  22. 22

    为什么TypeScript错误地推断返回类型?

  23. 23

    为什么TypeScript泛型抑制类型错误?

  24. 24

    为什么我的函数会产生“冲突类型”错误?

  25. 25

    为什么运行此功能时出现类型错误?

  26. 26

    为什么此Ada类型定义导致编译错误?

  27. 27

    为什么具有静态main()类型的程序显示错误?

  28. 28

    类型转换错误时,为什么属性得到验证?

  29. 29

    为什么设置(在组装中测试)会给出类型错误?

热门标签

归档