後に 基本的なグラフィカルな環境を作成します。 Y·エル アニメーションエンジン, 組み込んだマウスイベントモデルによって相互作用の基礎を紹介する.
技術はイベントやマウスとの対話毎回起こっを生成することになります. このイベントは、我々のソフトウェアモジュールのいずれかによって取得される, それを処理して、いくつかのアクションを発生させる.
これらのイベントを生成する方法を理解する最初のステップは、, 後で, 精巧なアクションを組み込む予定. 当分の間には十分です私たちが画面上の位置に発生するイベントの種類を確認するため.
ザ イベント駆動型プログラミング です プログラミング パラダイム 両方の構造と、計画の実施、システムで発生するイベントによって決定されます。, ユーザー定義または彼ら自身を引き起こす.
イベント駆動型プログラミングを理解するには, 我々 は何ではない反対することができます。: 逐次プログラミングでしばらくの間 (ザ 構造化) プログラマはプログラム フローになるかを定義します, イベント ドリブン プログラミングになりますユーザー - または何それは適用してプログラム - プログラムの流れを指示します。. 外部プログラム エージェントの介入がありますが逐次プログラミング, これらの介入はプログラマが判断した場合に発生します。, 任意の時間ではなくイベント駆動型プログラミングの場合可能性があります。(W)
イベント リスナー インターフェイスを実装します。
我々 は、システムを実装するためのグラフィック ライブラリの一意のクラス内のイベントは最初にではモデルを複雑に. 我々 は最初の事はデータベースを保守する担当のクラスの宣言を変更し、グラフィカル オブジェクトの塗りつぶしになります: “黒板”. 我々 はタグで示されます “実装します。” このクラスは、マウスに耳を傾けることができます。.
パブリッククラス 黒板 拡張 キャンバス 実装します。 MouseListener{
新しいインターフェイスは、このインターフェイスを実装するファイルを検索する新しい通話を JAVA ライブラリを追加する私たちが必要です。. 私たちは予約語でそれを行います “インポート”.
インポート java.awt.event.MouseListener;
インターフェイスで定義されているメソッドを実装する必要があります。, 同様に、クラスをインポート “MouseEvent” これらのメソッドにパラメーターとして渡されました。. 現時点で単に我々 はせずに宣言それらすべての機能を組み込む.
公共空間 mouseClicked(MouseEvent arg0) { // すべての自動生成されるメソッド スタブ } 公共空間 mouseEntered(MouseEvent arg0) { // すべての自動生成されるメソッド スタブ } 公共空間 mouseExited(MouseEvent arg0) { // すべての自動生成されるメソッド スタブ } 公共空間 mousePressed(MouseEvent arg0) { // すべての自動生成されるメソッド スタブ } 公共空間 mouseReleased(MouseEvent arg0) { // すべての自動生成されるメソッド スタブ }
イベント ログ
我々 はそれが発生するマウス イベントを記録します。. クラスまたはメソッドのコンス トラクター呼び出しが組み込まれる予定 “addMouseListener” リスナーを追加するかどうかを指定するには.
渡されるパラメーターは、マウスに耳を傾け、クラスの名前です。. 私たちのケースで我々 はこれが発生したときに通知されますこのイベントを記録は、同じクラスであることを示す. これは、タグで行っていますか “これは、“.
公共 黒板(){ これは、.addMouseListener(これは、); }
イベントの管理
いくつかの画面のマウスが押された位置の座標を格納する変数を定義します。
プライベート int lastX = 0; プライベート int lastY = 0;
我々 は以前の機能の 1 つを実装します。, たとえばは、マウス ボタンが押されるたびに実行されます。 “mouseClicked”. 現時点で我々 は単に続ける座標を押されました。, 我々 は追加機能を持つプログラムを複雑でした.
オブジェクトまたは関数に渡されるイベントでは、これらの座標, オブジェクト “MouseEvent”
公共空間 mouseClicked(MouseEvent arg0) { lastX = getX arg0。(); lastY = getX arg0。(); }
我々 は、マウスが押された位置で何かをペーストすることグラフィック画面上の描画を行うメソッドを変更します. それは私たちをキャプチャし、マウス イベントを処理しているしたグラフィックを確認することができる最も単純な実装.
公共空間 paintOffScreen(グラフィックG){ 列挙列挙= bd.elements(); 物体OB; 同時に(enum.hasMoreElements()){ OB = enum.nextElement(); もし(OBのinstanceof SimpleDrawable){ ((SimpleDrawable) かどうか).ペイント(G); } } paintMousePosition(G); }
この関数は、責任があります。 “paintMousePosition”, その実装は、マウスの位置のストアドの座標をグラフィカルに書き込む, 関数によって “巾着”.
プライベート空間 paintMousePosition(グラフィックG) { g.drawString("("+lastx ","+lasty ")", lastx, lasty); }
でなければなりません 接続済み コメントする.