• 締切済み

上階層へのEvent伝達方法

ある画面にあるボタンが押された時にEventを発生させます。 このEventを、画面を呼び出した上階層クラスでも ハンドリングさせたいと思います。 ボタンがある画面クラスか、それよりも下の階層へ伝えることは できますが、上の階層へは伝えることができるのでしょうか?

みんなの回答

noname#2875
noname#2875
回答No.3

下の例ではBクラスのコンストラクタの中だけが aのスコープなので a.method();をコンストラクタの外でやったら aなんてないというコンパイルエラーでますよね(^_^;) 恥ずかしいので自己フォローして見ました。 //ちょっと追加 classB { A a;  B(A a)//コンストラクタ。引数に呼び出しクラス  {   this.a=a;  }  a.method(event); } いわずもがなな感じですが…(^_^;)

bajiru8
質問者

お礼

ありがとうございます。 この方法ならスッキリいきますね。

noname#2875
noname#2875
回答No.2

class A {  B b = new B(this); //自分自身をわたしてBクラス作成  method(Event event)  {   //Bでイベントおこったときにしたいこと  } } classB {  B(A a)//コンストラクタ。引数に呼び出しクラス  {}  //Bクラスでイベントがあがったとき  //引数におこったイベントわたしてaのメソッド呼び出し  a.method(event); } とかA自身を渡してあげるとか…。 そゆことではないです?(^_^;) 初心者考えですが… これでは解決できないでしょか…。違うかな。

  • arata
  • ベストアンサー率49% (139/279)
回答No.1

super.メソッド(パラメータ) で、サブクラスのメソッドから、スーパークラスのメソッドが呼べますよね。

bajiru8
質問者

補足

質問の仕方を間違えました。上階層とか下階層とか言うのは、継承関係の事を いいたかったのではありません。 例えば、AクラスがBクラスを呼び出した時に、Bクラスで発生したEventを Aクラスが知りたいのです。呼び出し側のクラスにEventを伝えたいのです。 すみませんでした。

関連するQ&A