我的blackberry5应用程序中有一个位图字段,附带了fieldChanged监听器,它的工作原理非常好 现在我的问题是我也有一个相关的菜单用于相同的目的(我不能删除它的要求)并点击菜单我得到一个JVM 104 IllegalStateException
这是我的菜单类
public class TabMenu extends MenuItem{
MainScreen menuScreen;
Field button;
public TabMenu(String menuLabel,MainScreen menuScreen,Field button)
{
super(menuLabel, 1, 0);
this.menuScreen = menuScreen;
this.button = button;
}//end constructor
public void run()
{
FieldChangeListener listener = (FieldChangeListener)this.menuScreen;
listener.fieldChanged(this.button, this.button.getIndex());
this.button.setFocus();
}
}
这里是菜单和现场制作代码
protected void makeMenu(Menu menu, int instance) {
menu.add(new RefreshMenu());
menu.addSeparator();
menu.add(new TabMenu("Go >", this, goTab));
menu.addSeparator();
}
public void fieldChanged(Field field, int context) {
if (field == goTab) {
Dialog.alert("goinf")
}
}
答案 0 :(得分:0)
尝试将TabMenu#run()
方法更改为以下内容:
public void run() {
this.button.fieldChangedNotify(this.button.getIndex());
this.button.setFocus();
}