ビギグラマーのノート

自作PCやプログラミングについてのブログです。

【Java】EventListenerで他クラスにイベントのタイミングを伝える

 前置き

 諸事情でAndoroidではないデスクトップアプリでJavaを使用することになりました。私はSwiftしかりオブジェクト指向の言語で毎回クラス間、特に子→親の間のイベント通知に戸惑うようで今回も例に漏れず半日ほど唸っていました。

 SwiftではNotificationで比較的自由かつ簡単にクラス感のイベント送受信ができたのですが、JavaではEventListenerを作成することで大体同じような感じになりました。

 同じようにメソッドの呼び出しとしてsuperクラスによるものもありますが、これは単にメソッドを借りて実行しているため今回の用途ではうまく動きませんでした。

本文

 口で言うよりまずコードを見てもらった方が早いですね。

 

 今回は親となるReciveEvent.javaインスタンスにしてあるEventBeginning.javaからのイベントを受け取ると言うことをします。EventBeginning.javaeventListenerを実行するとのそのイベントが親のbuttonAction()を発火させると言うことです。

 この独自のEventListenerの構成を設定しているのがListenerInterfaceでこれに発火させるものを追加していくことができます。又、引数をEventListenerを指定すれば値を渡すこともできます。