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

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

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

執筆者:掌田 津耶乃

機能キーの処理


最後に、「機能キーの扱い」について触れておきましょう。マウスやキーボードの操作というのは、ただキーやマウスボタンを押すだけでなく、「Shiftキーを押してクリック」とか「Ctrlキーを押してキーをタイプ」というように、機能キーと組み合わせた使い方をすることがあります。

こうした処理は、MouseEvent/KeyEventに用意されている以下のようなメソッドを用いることで、機能キーの状態をチェックし処理することができます。

isShiftDown――Shiftキーが押されているかどうか
isAltDown――Altキーが押されているかどうか
isControlDown――Ctrlキーが押されているかどうか
isMetaDown――メタキーが押されているかどうか

イベントのインスタンスにあるこれらのメソッドの値がtrueであれば、対応する機能キーは押されていることがわかります。これをチェックすることで、機能キーの状態に応じた処理をさせることが可能です。実際にやってみましょう。

package jp.allabout;

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

public class SampleApp extends Frame {
  private Label label;
  private ArrayList list;

  public static void main(String[] args) {
    new SampleApp().setVisible(true);
  }
  
  public SampleApp(){
    list = new ArrayList();
    label = new Label();
    label.setFont(new Font(Font.SERIF,Font.PLAIN,24));
    this.add(label,BorderLayout.SOUTH);
    this.addMouseListener(new MyMouseAdapter());
    this.setSize(300,300);
  }
  
  public void paint(Graphics g){
    for(MouseEvent ev : list){
      if (ev.isAltDown()){
        g.setColor(Color.GREEN);
        g.fillOval(ev.getX() -35, ev.getY() - 35, 70, 70);
      }
      if (ev.isControlDown()){
        g.setColor(Color.BLUE);
        g.fillOval(ev.getX() -25, ev.getY() - 25, 50, 50);
      }
      if (ev.isShiftDown()){
        g.setColor(Color.RED);
        g.fillOval(ev.getX() -15, ev.getY() - 15, 30, 30);
      }
      g.setColor(Color.BLACK);
      g.fillOval(ev.getX() -5, ev.getY() - 5, 10, 10);
    }
  }
  class MyMouseAdapter extends MouseAdapter {

    @Override
    public void mouseClicked(MouseEvent ev) {
      list.add(ev);
      repaint();
    }
    
  }
}

機能キーと組み合わせてクリックすると複数の色の円が重なって描かれる。

これは、マウスイベントのサンプルで作成した「クリックしたところに円を描く」サンプルを修正し、機能キーが押されていると表示を変えるようにしたものです。ここでは「Altキーが押されていたら大きな緑の円を描く」「Ctrlキーが押されていたら中くらいの青い円を描く」「Shiftキーが押されていたら小さめの赤い円を描く」というように、それぞれの機能キーの状態に応じて円を描き加えるようにしました。機能キーと併用すると、このようにけっこう複雑な操作も処理できるようになります。
【編集部おすすめの購入サイト】
楽天市場で Java 関連の書籍を見るAmazon で Java 関連の書籍を見る
  • 前のページへ
  • 1
  • 3
  • 4
  • 5
※記事内容は執筆時点のものです。最新の内容をご確認ください。
※OSやアプリ、ソフトのバージョンによっては画面表示、操作方法が異なる可能性があります。

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

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