• 締切済み
  • 困ってます

上階層へのEvent伝達方法

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

共感・応援の気持ちを伝えよう!

  • 回答数3
  • 閲覧数82
  • ありがとう数4

みんなの回答

  • 回答No.3
noname#2875

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

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

関連するQ&A

  • 「コンピュータ」画面上で、フォルダの階層を上へ、上へ登りたいのですが・

    「コンピュータ」画面上で、フォルダの階層を上へ、上へ登りたいのですが・・・画面上に上のフォルダ名が見えないときがある場合は、どうすれば出来ますか? Windows7の場合、たとえばエクスプローラーを開いて、フォルダの階層を降りたり上ったりする際、 階層のフォルダ名が見えない場合に戻る事が出来ません。 お詳しい方、教えてください。

  • 画像を階層で表示する方法を教えてください。

    現在プログラミングを学んでいる、Java初心者です。 SwingでHTMLのリンクように、画像をクリックすると同じフレームの中で、下の階層に移り、メニューボタンを押すと最上階層に移る画面を作りたいのですが、Swnigの本などで調べても、なかなか見つからず困っております。 Swingでこのような事ができるのかどうか、ご存知の方おられましたら教えてください。 また、もしこのような技術あるのであれば、参考になる本やサイトなども教えてください。よろしくお願いいたします。

    • ベストアンサー
    • Java
  • エクスプローラーに「上の階層」ボタンが無くて不便

    WinXPのエクスプローラーには存在していた 「上の階層」ボタン(上向きの矢印のボタン)が Win7には存在しません。 Win7でエクスプローラーフォルダーを 上へ上へと登りたい時 とても不便です。 Win7のエクスプローラーに 「上の階層」ボタンを設置することはできませんか。 方法を教えてください。

  • 回答No.2
noname#2875

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

共感・感謝の気持ちを伝えよう!

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

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

共感・感謝の気持ちを伝えよう!

質問者からの補足

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

関連するQ&A

  • エクスプローラ、「上へ」でフォルダ階層を戻った際、スクロールバーを以前の位置で表示させたい

    エクスプローラにて、上下にスクロールしないと全てが見えないほど フォルダが沢山あった際、ある程度下にスクロールさせて希望の フォルダを画面に表示させますが、その後フォルダをクリックして 下の階層に入り、用が済んだのち「上へ」で元の直前フォルダ(階層) に戻るとどうしても、一番上が表示されています。 下の階層に入る直前のスクロール位置に戻ってこさせることは 出来ないのでしょうか? 今回、別ソフト等の案内はなしでお願いします。 エクスプローラでの設定(レジストリを含む)で何とかならないのか といったことで、よろしくお願いいたします。

  • FIREFOXで、今開いているページから、ひとつ上の階層に良くボタンを

    FIREFOXで、今開いているページから、ひとつ上の階層に良くボタンを付けるには? SLEIPNIRには、「上のディレクトリに移動」というボタンが付いていたのですが、 便利なので、FIREFOXにも付けたいです。アドオンなどを教えていただけると嬉しいです。 宜しくお願い申し上げます。

  • コンピューターの”階層”と”環境”を英語で言うと?

    英語でコンピューターのフォルダの“階層”は何といえばいいのでしょうか? “これらのファイルはXXXと同じ階層に置いてください”というようなことを伝えたいと思っています。 また、上の階層、下の階層はそれぞれ“Upper, Lower”でいいのでしょうか? 2つ上の階層、3つ下の階層はなんと表現すればいいのでしょうか? もうひとつ、コンピューターの“環境”(OSやハードウェア、使用ソフトなど)は何といえばいいのでしょうか? “問題がある場合はそちらの環境を教えてください”というようなことを伝えたいと思っています。 よろしくお願いします。

  • eventの概念が理解できません

    こんにちは。オブジェクト志向でVB、C#を学んでいます。デリゲートを理解してeventについて学んでいますが、よく理解できません。 イベントとは、「あるアクションが発生したことを自動的に通知するための仕組み」と本にあります。 さらに、「送信側オブジェクトのイベント(と呼ばれるクラスメンバーに、受信側のイベントハンドラー(と呼ばれるメソッド)を登録します。」とあります。 下記が本に載っているコードです。 私が理解できているのは、 ・戻り値が無し、引数をとらないメソッドを参照するオブジェクト。MyEventHandlerというデリゲートを宣言 ・戻り値が無し、引数をとらないメソッドを参照するオブジェクト。SomeEvent変数を宣言 ・MyEvent型のevt変数の宣言 理解できないのは、 evt.SomeEvent += Handler;。何をやっているかわかりません。 ここをわかりやすくお教え頂けませんでしょうか? using System; //MyEventHandler型を宣言。ここは理解できます。 delegate void MyEventHandler(); class MyEvent{ //イベントの宣言。EventHandler型の変数、SomeEvent。 public event MyEventHandler SomeEvent; public void Fire(){ if(SomeEvent !=null) SomeEvent(); } } class EventDemo{ static void Handler(){ //←イベントハンドラー Console.WriteLine("Event occurred"); } static void Main(){ MyEvent evt = new MyEvent(); evt.SomeEvent += Handler; evt.Fire(); } } また、もう一点お教え下さい。フォーム上のボタンをクリックした時に、メッセージを表示するようなイベントはどのような形で動いているのでしょうか? senderはイベントの発生元のオブジェクトがそのまま入っていて、eはイベントの補足情報が入っているのは理解しました。 ボタンをクリックした時に、ボタンクラスから何らかの情報が送られてきて、それをsenderとeで受取ると思うのですが、これのどこにeventとデリゲートが関わってくるのでしょうか? 何かモヤモヤしてeventがわかりません。 宜しくお願い致します。 private void btn_Click(object sender, EventArgs e) { messagebox.show("hello"); }

  • JavaSwingで画像を階層化

    JavaSwingを使って、画像を階層化する方法考えています。 画面全体に、4つの画像が並んでいて、 画像を左クリックすると、下の階層の4枚の画像が現れるようにしたいのですが、どうすればいいのかわかりません。 そもそもSwingでそのような事はできないのでしょうか?。 ご存知の方があられましたら教えてください。

  • 一つ上の階層へ

    一つ上の階層へ Windows7を使っています。 XPの時はツールバーに上矢印のボタンがあり、フォルダの一つ上の階層へ移動することができましたが、7ではそのようなボタンがありません。 どのようにして設定することができるでしょうか?

  • eventが設定された要素のinnerHTML

    eventが設定された要素のinnerHTMLを変更するとeventが発生しなくなります。 appendChild等を使用するということはわかりましたが、 なぜinnerHTMLの書き換えだとeventが発生しなくなるのかが 調べてもいまいちわかりませんでした、ご教示お願いします。 また参考になるようなサイト等がありましたら教えてください。

  • 多階層ルーティング

     (L)(L)(L)(L) BBルータTrio3Gp.192.168.3.1 (W) ─ 壁   | |   | PC1.192.168.3.3   |  └ (W) コレガルータ.192.168.3.2 (L)(L)(L)(L) ─ PC2.192.168.3.4 上の図の(L)はLAN側の端子で、(W)はWAN側の端子です。 サブネットは255.255.255.0です。 PC1とPC2がファイル共有できるようにしたいのですが、 上の図ではだめでしょうか? BBルータTrio3Gpの階層を1とすると、コレガルータの階層は2です。 階層が違うルータ同士が192.168.3という同一のセグメントを持つのは 間違った使い方ですか? サブネットで255.255.255.0以外を使った方がよい場合というのは よほどのことがない限りありませんよね?例えばPC100台以上など。 ですので、上の図で、サブネットは全て255.255.255.0です。 zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

  • サイトの階層について

    ホームページの階層について教えて下さい。 通常 http://www.●●●.co.jp/ ちょっと下の階層に行くと http://www.●●●.co.jp/concept/concept.html のように/(スラッシュ)で区切られるようになるのですが 私が作ったサイトは、 http://www.●●●.co.jp/●●●.html のように、co.jpから1つ下の階層にしかなりません。 何故なのでしょうか(T_T) また、深い階層まで表示させないと、SEOに不利になるのでしょうか? どうか教えて下さい。よろしくお願いします。

  • エクスプローラ風の階層構造

    Windowsエクスプローラのように、フォルダやファイルなどの情報をDBで管理したいと思っています。 No.99167の質問を参考にさせていただいて、フォルダコード・階層・フォルダ名・サブフォルダ名を項目名としてもたせて作成しています。 同じ階層に同じ名前のフォルダがいくつも存在している場合(上の階層以外、各パスも同じだった場合を想定)で、その中の1つのフォルダだけを削除した場合、削除するフォルダの下の階層のフォルダやファイルだけを一緒に削除することができないのです。 多くのケースを考えると、項目に何かを足さなければならない気がするのですが、わかりません。 (これはWeb上で管理することを考えています。)