Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

Listenerを自分で作る

すでにjavaにあるリスナーではなくて、自分で新しいリスナーを作り、一つのイベントを作ってみたいのです。ウェブ上で検索したのですが、内容がわかりにくかったりしてまだ理解できていないです。

一ついい例を見たいのですが、どこ参照すればいいのでしょうか。

4

回答

79422

閲覧

4件の回答

評価

0

例えば、どんなイベントを拾いたいんでしょうか。
本当に、「リスナを作る」必要があるのかどうかと。

評価

0

イベント/リスナって、イベント処理となるメソッドの中からリスナとなるメソッドを呼んでいるだけです。

リスナとなるメソッドを定義したインターフェイスを用意し、イベントを処理するクラスに登録できるようにするとaddListenerメソッドができるし、

リスナを介して呼ばれたい方のクラスで先のインターフェイスを持つクラスを作ったものをインスタンス化し、イベント側に登録してやると、イベント側でそのメソッドが呼ばれるようになります。

基本的にはこんなところなのかな?

"java リスナ"とかでググッてみても、そんな難しいものでもないものが出てきていると思うのですけど・・。
イメージを膨らませるというようなところが足りないのでは?

評価

0

お二人ありがとうございます。

ボタンを押す、マウスを動かす。。。というような、Javaにすでに用意されているイベント以外に、自分で新しいのを作るとしたらどうなるのかな、と思ったのです。例えば、「エクセルの画面にある数字が変わったら。。。をやれ」、とか作ってみたら面白いじゃないですか。

http://javaalmanac.com/egs/java.util/CustEvent.html 

ここを読んで、結局理解できたつもりです。でも、まだ自分で作れる自身はありません。

評価

0

Excelというのは、Javaから見て外の世界のものであり、そもそも(基本的には)Javaの扱えるものではないのです。
Javaが扱えるのは、「Java」という閉じた世界と、その周辺のごく一部(ファイルとか通信とか)だけです。
Excelのセルに数字が入ったときのイベントは、「Excelのイベント」であって、「Javaのイベント」とは、まるきり別のものです。
そのURLで扱うものも、Javaの中だけの話であり、まあさんが書かれているものです。

Javaの外の世界のイベントを拾うためには、どうしてもJNI(ふつうはC/C++言語)を使う必要があります。
つまり、Javaの勉強に加えてその言語の勉強も、必要になります。
また、扱うオブジェクト(WindowsなりExcelなり)のイベントモデルの勉強も、必要になります。
もし本当に作るつもりなら…頑張ってください。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。