【Java】EventListenerで他クラスにイベントのタイミングを伝える
前置き
諸事情でAndoroidではないデスクトップアプリでJavaを使用することになりました。私はSwiftしかりオブジェクト指向の言語で毎回クラス間、特に子→親の間のイベント通知に戸惑うようで今回も例に漏れず半日ほど唸っていました。
SwiftではNotificationで比較的自由かつ簡単にクラス感のイベント送受信ができたのですが、JavaではEventListenerを作成することで大体同じような感じになりました。
同じようにメソッドの呼び出しとしてsuperクラスによるものもありますが、これは単にメソッドを借りて実行しているため今回の用途ではうまく動きませんでした。
本文
口で言うよりまずコードを見てもらった方が早いですね。
今回は親となるReciveEvent.java
がインスタンスにしてあるEventBeginning.java
からのイベントを受け取ると言うことをします。EventBeginning.java
のeventListener
を実行するとのそのイベントが親のbuttonAction()
を発火させると言うことです。
この独自のEventListener
の構成を設定しているのがListenerInterface
でこれに発火させるものを追加していくことができます。又、引数をEventListener
を指定すれば値を渡すこともできます。