- 締切済み
上階層へのEvent伝達方法
ある画面にあるボタンが押された時にEventを発生させます。 このEventを、画面を呼び出した上階層クラスでも ハンドリングさせたいと思います。 ボタンがある画面クラスか、それよりも下の階層へ伝えることは できますが、上の階層へは伝えることができるのでしょうか?
- みんなの回答 (3)
- 専門家の回答
みんなの回答
下の例ではBクラスのコンストラクタの中だけが aのスコープなので a.method();をコンストラクタの外でやったら aなんてないというコンパイルエラーでますよね(^_^;) 恥ずかしいので自己フォローして見ました。 //ちょっと追加 classB { A a; B(A a)//コンストラクタ。引数に呼び出しクラス { this.a=a; } a.method(event); } いわずもがなな感じですが…(^_^;)
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)
super.メソッド(パラメータ) で、サブクラスのメソッドから、スーパークラスのメソッドが呼べますよね。
補足
質問の仕方を間違えました。上階層とか下階層とか言うのは、継承関係の事を いいたかったのではありません。 例えば、AクラスがBクラスを呼び出した時に、Bクラスで発生したEventを Aクラスが知りたいのです。呼び出し側のクラスにEventを伝えたいのです。 すみませんでした。
お礼
ありがとうございます。 この方法ならスッキリいきますね。