Javaプログラミング/Javaの基本

マウスとキーボードのイベント処理(2ページ目)

今回は、GUIアプリケーションで必要となるマウスとキーボードのイベント処理について説明しましょう。

執筆者:掌田 津耶乃

マウスイベントを使ってみる


では、実際にMouseListenerを使ったサンプルを作成してみましょう。クリックした位置を覚えておき、赤い円を表示するサンプルを作ってみます。

package jp.allabout;

import java.awt.*;
import java.awt.event.*;
import java.util.*;

public class SampleApp extends Frame {
  private ArrayList list;

  public static void main(String[] args) {
    new SampleApp().setVisible(true);
  }
  
  public SampleApp(){
    list = new ArrayList();
    this.addMouseListener(new MyMouseListener());
    this.setSize(300,300);
  }
  
  public void paint(Graphics g){
    g.setColor(Color.RED);
    for(Point p : list){
      g.fillOval(p.x - 10, p.y - 10, 20, 20);
    }
  }
  
  class MyMouseListener implements MouseListener {
    
    @Override
    public void mouseClicked(MouseEvent ev) {
      Point p = ev.getPoint();
      list.add(p);
      repaint();
    }

    @Override
    public void mouseEntered(MouseEvent ev) {}

    @Override
    public void mouseExited(MouseEvent ev) {}

    @Override
    public void mousePressed(MouseEvent ev) {}

    @Override
    public void mouseReleased(MouseEvent ev) {}
    
  }
  
}

クリックしたところに赤い円が描かれていく。

これを実行すると、ウインドウ内をクリックしたところに赤い円が描かれるようになります。mouseClickedメソッドで、クリックしたときの処理を作成しています。ここでは、MouseEventのgetPointを使い、Pointクラスのインスタンスという位置の情報を管理するオブジェクトを取り出し、ArrayListに保管しています。ArrayListについては前回とりあげましたね。

Pointというクラスは、内部にxとyというフィールドを持っています。これで位置の縦横の値がわかるようになっています。mouseClickで位置をArrayListに保管したら、paintでArrayListの中身を取り出して描いていけばいいわけですね。
  • 前のページへ
  • 1
  • 2
  • 3
  • 5
  • 次のページへ

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます