プロが教えるわが家の防犯対策術!

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

A 回答 (3件)

下の例ではBクラスのコンストラクタの中だけが


aのスコープなので
a.method();をコンストラクタの外でやったら
aなんてないというコンパイルエラーでますよね(^_^;)
恥ずかしいので自己フォローして見ました。

//ちょっと追加
classB
{
A a;
 B(A a)//コンストラクタ。引数に呼び出しクラス
 {
  this.a=a;
 }
 a.method(event);
}

いわずもがなな感じですが…(^_^;)
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/02/10 17:39

class A


{
 B b = new B(this); //自分自身をわたしてBクラス作成
 method(Event event)
 {
  //Bでイベントおこったときにしたいこと
 }
}

classB
{
 B(A a)//コンストラクタ。引数に呼び出しクラス
 {}

 //Bクラスでイベントがあがったとき
 //引数におこったイベントわたしてaのメソッド呼び出し
 a.method(event);
}

とかA自身を渡してあげるとか…。


そゆことではないです?(^_^;)
初心者考えですが…

これでは解決できないでしょか…。違うかな。
    • good
    • 0

super.メソッド(パラメータ)



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

この回答への補足

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

補足日時:2001/02/09 12:41
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!