MIDIを作れるJavaアプレットを作っているのだ。
前回でだいたいのデータ構造を知ったのだ。
しかし、キーやマウスのイベントを受け取れなければ操作できないのです。
電源のつかないPCなんて花瓶置きにでもしてればいいのです。絶対に必要な機能は忘れないうちにつけておくのです。
リスナーを実装する
まず、
import java.awt.event.*;
として、いろいろインポートします。
そして、
public class MIDIApplet extends Applet implements KeyListener,MouseListener {
こうすると、eclipseが勝手にこれ実装しろあれ実装しろと、エラーという形で教えてくれるので従います。
// KeyListenerの実装 public void keyTyped(KeyEvent e) { if (view!=null) view.keyTyped(e); } public void keyPressed(KeyEvent e) { if (view!=null) view.keyPressed(e); } public void keyReleased(KeyEvent e) { if (view!=null) view.keyReleased(e); } // MouseListenerの実装 public void mouseEntered(MouseEvent e){ if (view != null) view.mouseEntered(e); } public void mousePressed(MouseEvent e){ if (view != null) view.mousePressed(e); } public void mouseExited(MouseEvent e){ if (view != null) view.mouseExited(e); } public void mouseReleased(MouseEvent e){ if (view != null) view.mouseReleased(e); } public void mouseClicked(MouseEvent e){ if (view != null) view.mouseClicked(e); }
実際にどのような処理をするかはビュークラスに依存するのでイベント内容をそっくりそのままビュークラスにまわします。
もちろん、ビュークラスにも対応するメソッドを作っておきます。
テスト用のビュークラスを作る
ビュークラスをどうするのかまだ具体的には決めていないのでそれを探したり音を鳴らすテストをしたりするためのテスト用ビュークラスを作ることにします。
開発が軌道に乗り始めたら消しますが、予定ではそれまでにここで音の鳴らし方やイベントの置き方などを確認するつもりです。
public class MIDIViewTest extends MIDIView { }
例によって実際に書いたコードをここにおいておきます。
聞くだけは聞いてやる(2.20kilobyte)
例によって音は鳴りませんし、相変わらず操作しても反応はありません。
要点
- もっとも大切なことを忘れていたのに気付くのは次回のことだ。って、これ要点か!?