初心者向けのJava講座です。一緒にJavaを勉強しませんか?
はじめてのJava入門初心者向けの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 + " がクリックされました"でラベルに表示しています。
実際にイベントの処理を確認しましょう
ページのトップへ戻る