HOME>Javaアプレット講座>イベント>イベントサンプル集

イベントサンプル集

今回のイベントプログラムではアプレットの背景色をすべて白に設定しています。
それはjavaのバージョンやブラウザの環境によりデフォルトではグレーになったり白になったりしますので ここでは、すべて白に統一させています。

もし他の色を指定したい場合は

setBackground(new Color(0, 0, 0));の数字を0〜255の間で指定してやることでいろいろな色に変更できます。

押されたボタンを判別

今回のイベントの概要

3つのボタンを用意し、ボタンをクリックするとどのボタンが押されたかを判別しその結果をラベルに表示させます。

今回使用するイベントリスナーはActionListenerです。

addActionListenerでイベントを受け取れるよう登録します。
またActionListenerではイベント処理メソッドを必ずactionPerformedメソッドをオーバーライドしなければいけません。

では、サンプルプログラムで確認していきます。

サンプルプログラム(EventSample35.java)

//java.appletパッケージをimport宣言
//java.awtパッケージもimport宣言
//java.awt.eventパッケージもimport宣言
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
 public class EventSample35 extends Applet implements ActionListener{
    //ボタンとラベルの作成
   Button bu  = new Button("ButtonA");
   Button bu1 = new Button("ButtonB");
   Button bu2 = new Button("ButtonC");
   Label la = new Label();

   public void init(){

   //アプレットの背景色を指定
     setBackground(new Color(255, 255, 255));

  //レイアウトの指定

     setLayout(null);

   add(bu);
   add(bu1);
   add(bu2);
   add(la);

   //ボタンとラベルの位置を指定

    bu.setBounds(20,10,60,20);
    bu1.setBounds(90,10,60,20);
    bu2.setBounds(160,10,60,20);
    la.setBounds(20,40,200,20);

    //ボタンにActionListenerを登録します。

bu.addActionListener(this); bu1.addActionListener(this); bu2.addActionListener(this); } //イベント処理メソッドをオーバーライドします。 public void actionPerformed(ActionEvent e){ String str = e.getActionCommand(); if(e.getSource() == bu){ la.setText(str + " がクリックされました"); }else if(e.getSource() == bu1){ la.setText(str + " がクリックされました"); }else if(e.getSource() == bu2){ la.setText(str + " がクリックされました"); } } }

プログラムをコピーする場合すべて選択をクリックしてください。

HTMLの作成(EventSample35.html)

<html>
  <head>

      <title>押されたボタンを判別</title>
</head>
<body>
      <h1>ボタンを押してください</h1>

    <applet code="EventSample35.class" width="300" height="150"></applet>

  </body>

</html>

プログラムをコピーする場合すべて選択をクリックしてください。

Sponsored link

解説

イベント処理をおこないますのでActionListenerを実装します。

今回使用するボタンとラベルを作成しています。

public void init()メソッド内ではまずボタンとラベルの位置を設定しています。
ボタンにイベントをおこなえる様に登録をしています。
それが
bu.addActionListener(this);
bu1.addActionListener(this);
bu2.addActionListener(this);
です。
イベント処理を記述するイベント処理メソッドをオーバーライドしています。
今回ActionListenerを実装しているのでオーバーライドするメソッドは
actionPerformedメソッドだけです。

actionPerformedメソッド内の記述ですがそこに実際イベントの処理内容を記述します。

今回注目したい部分は
String str = e.getActionCommand();
です。
getActionCommand()メソッドはActionEventクラスのメソッドです。
このメソッドはアクションに関連したコマンド文字列を返します。
つまり

ButtonAがクリックされたらButtonAの文字列が、ButtonBがクリックされたらButtonBの文字列
がButtonCがクリックされたらButtonCの文字列が返ってきます。
その文字列を
String型の変数 strに格納しています。
つまり

ここでどのボタンが押されたかを判別しているのです。

if文の中ではどのボタンがクリックされたかを判別して
la.setText(str + " がクリックされました"でラベルに表示しています。

実際にイベントの処理を確認しましょう

イベントサンプル


ページのトップへ戻る