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

イベントサンプル集

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

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

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

ボタンで背景色を変更

今回のイベントの概要

ボタンを押して背景色を変えてみます。

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

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

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

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

//java.appletパッケージをimport宣言
//java.awtパッケージもimport宣言
//java.awt.eventパッケージもimport宣言

import java.applet.*; import java.awt.*; import java.awt.event.*; public class EventSample37 extends Applet implements ActionListener{ Button bu = new Button("赤"); Button bu1 = new Button("黒"); Button bu2 = new Button("黄"); Button bu3 = new Button("白"); public void init(){ //アプレットの背景色を指定 setBackground(new Color(255, 255, 255)); //レイアウトの指定 setLayout(null); add(bu); add(bu1); add(bu2); add(bu3); //ボタン位置を指定 bu.setBounds(20,10,60,20); bu1.setBounds(90,10,60,20); bu2.setBounds(160,10,60,20); bu3.setBounds(230,10,60,20); //ボタンにActionListenerを登録します。
bu.addActionListener(this); bu1.addActionListener(this); bu2.addActionListener(this); bu3.addActionListener(this); } //イベント処理メソッドをオーバーライドします。 public void actionPerformed(ActionEvent e){ if(e.getActionCommand() == "赤"){ setBackground(new Color(0xFF0000)); }else if(e.getActionCommand() == "黒"){ setBackground(new Color(0x000000)); }else if(e.getActionCommand() == "黄"){ setBackground(new Color(0xFFFF00)); }else if(e.getActionCommand() == "白"){ setBackground(new Color(0xFFFFFF)); } } }

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

HTMLの作成(EventSample37.html)

<html>
  <head>
      <title>ボタンで背景色を変更します。</title>
  </head>
   <body>

<h1>ボタンで背景色を変更します。</h1> <applet code="EventSample37.class" width="330" height="150"></applet> </body> </html>

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

Sponsored link

解説

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

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

今回もif文内の処理に注目してみます。
ここではgetActionCommand()メソッドを使っています。
このメソッドはアクションに関連したコマンド文字列を返します。
つまり今回はボタンのラベルの文字列を返しています。
ボタンのラベルをgetActionCommand()を使い取得しています。
つまり最初のif文の中身は
押されたボタンのラベルの文字列が赤だったらif文の中の処理をしなさいという意味になります。

ここでもうひとつ注目してください。
Colorクラスの引数に0xFF0000のような記述をしています。
色見本の作成(RGB指定)のところではColorクラスの引数にRGB指定をしました。
しかしこのようにすることもできるのです。
ホームページなどを作成した人は馴染みのあると思うのですがこれは16進数表記で表した表記です。
FF0000は赤を表し000000は黒を表しFFFF00は黄色を表しFFFFFFは白を表します。
しかしColorクラスの引数には必ず色を表すために16進数の色の前に必ず0xを記述しなければいけません。

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

イベントサンプル


ページのトップへ戻る