Поле Blackberry BitmapChanged throws IllegalStateException - PullRequest
0 голосов
/ 05 марта 2012

У меня есть растровое поле в приложении 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") 
   }
 }  

1 Ответ

0 голосов
/ 06 марта 2012

Попробуйте изменить метод TabMenu#run() на следующий:

public void run() {
    this.button.fieldChangedNotify(this.button.getIndex());
    this.button.setFocus(); 
}
...