初心者向けのJava講座です。一緒にJavaを勉強しませんか?
はじめてのJava入門初心者向けのJava講座 |
イベントサンプル集
今回のイベントプログラムではアプレットの背景色をすべて白に設定しています。
それはjavaのバージョンやブラウザの環境によりデフォルトではグレーになったり白になったりしますので
ここでは、すべて白に統一させています。
もし他の色を指定したい場合は
setBackground(new Color(0, 0, 0));の数字を0〜255の間で指定してやることでいろいろな色に変更できます。色見本の作成(RGB指定)
今回のイベントの概要
簡単な色見本を作成します。ここで作成する色見本とはRGB指定を採用します。
RGB指定とはつまり R が 赤成分の明るさ Gが 緑成分の明るさ Bが 青成分の明るさです。
その3つの成分を混ぜることによりあらゆる色を作り出すことができます。
それそれの成分も0〜255までの数字を取得しており0がその成分の色が暗く255になるにしたがって明るくなります。
つまり3つの成分の値を0にすれば黒になり、3つの成分の数字を255になれば白になります。
また、3つの成分の数字を等しくすればグレーになります。
今回使用するクラスはColorクラスです。 そのColorクラスのコンストラクタの引数に3つの成分を指定してやります。
つまりColor co = new Color( int r, int g, int b )のようになり引数にはそれぞれ0〜255までの値を指定してやります。
つまり、黒を作成したいときは
Color co = new Color(000,000,000)となり、
白を作成したいときは
Color co = new Color(255,255,255)になります。
ここからが今回のイベントの処理ですが
今回使用するイベントリスナーはActionListenerです。
addActionListenerでイベントを受け取れるよう登録します。またActionListenerではイベント処理メソッドを必ずactionPerformedメソッドをオーバーライドしなければいけません。
では、サンプルプログラムで確認していきます。
サンプルプログラム(EventSample36.java)
//java.appletパッケージをimport宣言 //java.awtパッケージもimport宣言 //java.awt.eventパッケージもimport宣言
import java.applet.*; import java.awt.*; import java.awt.event.*; public class EventSample36 extends Applet implements ActionListener{ //色成分を格納する変数を用意します。 int x; int y; int z; //テキストフィールドとボタンの作成 TextField tx1 = new TextField("000",2); TextField tx2 = new TextField("000",2); TextField tx3 = new TextField("000",2); Button bu = new Button("色見本"); public void init(){ //アプレットの背景色の初期設定 setBackground(new Color(16, 245, 225)); //レイアウトの指定 setLayout(null); add(tx1); add(tx2); add(tx3); add(bu); //テキストフィールドとボタンの位置を指定 tx1.setBounds(20,40,60,20); tx2.setBounds(90,40,60,20); tx3.setBounds(160,40,60,20); bu.setBounds(70,100,100,20); //ボタンにActionListenerを登録します。
bu.addActionListener(this); } public void paint(Graphics g){
g.drawString("0から255の数字を入力後ボタンを押してください",10,30);
} //イベント処理メソッドをオーバーライドします。 public void actionPerformed(ActionEvent e){ if(e.getSource() == bu){ x=Integer.parseInt(tx1.getText()); y=Integer.parseInt(tx2.getText()); z=Integer.parseInt(tx3.getText()); Color c = new Color(x,y,z);
setBackground(c); } } }
プログラムをコピーする場合すべて選択をクリックしてください。
HTMLの作成(EventSample36.html)
<html> <head> <title>色見本を作成</title> </head> <body>
<h1>色見本</h1> <applet code="EventSample36.class" width="300" height="150"></applet> </body> </html>
プログラムをコピーする場合すべて選択をクリックしてください。
Sponsored link
解説
プログラム自体は長くなり難しく思われますが、やってることは簡単です。
イベント処理をおこないますのでActionListenerを実装します。
まず、色を格納する変数を3つ用意します。
数字を入力するテキストフィールドと色見本用のボタンを作成しています。
テキストフィールドの引数には最初から000の文字列を入れた状態にしています。
ここでは背景色の設定をしています。
ここでも背景色の指定にRGB指定です。
それが
setBackground(new Color(16, 245, 225));
です。 ボタンとテキストフィールドの位置を設定しています。
ボタンにイベントをおこなえる様に登録をしています。
それが
bu.addActionListener(this);
です。
イベント処理を記述するイベント処理メソッドをオーバーライドしています。
今回ActionListenerを実装しているのでオーバーライドするメソッドは
actionPerformedメソッドだけです。
actionPerformedメソッド内の記述ですがそこに実際イベントの処理内容を記述します。
今回もif文内の処理に注目してみます。if文内ではまずテキストフィールドで入力された文字列をint型に変換させています。
つまり
テキストフィールドに入力された数字もあくまで文字列です。
ここではテキストフィールドで入力された文字列(数字)をColorクラスの引数に指定します。
Colorクラスの引数ではint型です。したがってint型に変換しなければいけないのです。
それが
x=Integer.parseInt(tx1.getText());
y=Integer.parseInt(tx2.getText());
z=Integer.parseInt(tx3.getText());
です。これでテキストフィールドで入力された文字列をint型に変換しています。
その変数をColorクラスの引数に指定しています。
それで背景色に指定しているのです。注意
ただもしかしてパソコンのOSやバージョンによっては表示崩れを起こしたりうまく色が指定できないかもしれません。
実際にイベントの処理を確認しましょう
ページのトップへ戻る