我动态添加了一些MultiButton
,每个都有一个新的ActionListener
。调用ActionListener
时,Component
的类型为Button
,而不是实际的MultiButton
对象(即投射到MultiButton导致ClassCastException
无法投射{{ 1}}到Button
)。
有没有办法获得MultiButton
?或者我做了些傻事?
代码:
MultiButton
答案 0 :(得分:2)
如果你看一下codenameone中MultiButton的来源,你会看到这个方法:
/**
* Adds an action listener
*
* @param al the action listener
*/
public void addActionListener(ActionListener al) {
emblem.addActionListener(al);
}
会徽是会员并宣布为按钮:
private Button emblem = new Button();
因此,您通过evt.getComponent()
电话获得的组件确实是一个按钮。
更新: 要将按钮作为MultiButton,您应该使用:
MultiButton multiButton = (MultiButton) evt.getComponent().getParent().getLeadParent();