0

Webサービスの非同期を呼び出す小さなアプリケーションを作成しています。応答が完了したときに読み込み終了イベントを発生させて、次のフォームに移動できるようにします。

どうすれば良い方法でそれを行うことができますか?

4

3 に答える 3

2

Javaでのイベントの発生には、次の要素が必要です

  • イベントに関する情報を送信するイベントクラス
  • Beanが関係者に通知する方法を説明するインターフェース(リスナーと呼ばれる)リスナーを追跡するためのデータ構造
  • リスナーを追加および削除するための登録方法
  • イベントを発生させるコード

イベントクラスは、次のようにjava.util.EventObjectを拡張します。

public class MyEventClass extends java.util.EventObject {
         //here's the constructor
         public MyEventClass(Object source) {
             super(source);
         }
}

インターフェイスは次のようになります。

 public interface MyEventClassListener {
     public void handleMyEventClassEvent(EventObject e);
}

イベントソースは次のようになります。

public class MyEventSource {
  private List _listeners = new ArrayList();
  public synchronized void addEventListener(MyEventClassListener listener){
     _listeners.add(listener);
  }
  public synchronized void removeEventListener(MyEventClassListener listener){
    _listeners.remove(listener);
  }
  // call this method whenever you want to notify
  //the event listeners of the particular event
  private synchronized void fireEvent(){
    MyEventClass event = new MyEventClass(this);
    Iterator i = _listeners.iterator();
    while(i.hasNext()){
      ((MyEventClassListener) i.next()).handleMyEventClassEvent(event);
    }
  }
}

イベントリスナーは次のようになります。

public class MyEventListener implements MyEventClassListener {
  // ... code here

  //implement the required method(s) of the interface
  public void handleMyEventClassEvent(EventObject e) {
    // handle the event any way you see fit
  }
}

addEventListenerメソッドを呼び出して、MyEventListenerオブジェクトをMyEventSourceオブジェクトに登録する必要があります。

幸運を祈ります。詳細については、お気軽にお問い合わせください。

于 2012-09-24T10:27:13.707 に答える
1

J2MEでイベントを作成するには、次のコードを試してください。

EventList eventList = (EventList)PIM.getInstance().openPIMList(PIM.EVENT_LIST, PIM.READ_WRITE);

Event event = eventList.createEvent();
...
event.addString(Event.SUMMARY, PIMItem.ATTR_NONE, summary);
...
event.commit();

詳細については、JSR75を参照してください。

于 2012-09-24T10:14:43.220 に答える
0

インターフェイスを作成してメソッドに渡すことでこの問題を解決しました。インターフェイスはブール値フラグの値を変更し、別のメソッドを呼び出します。これにより、作業が終了し、作業を続行でき、で実行されていることがわかります。別のスレッド

于 2013-01-28T14:48:37.237 に答える