標準クラスライブラリに含まれるAWT(Abstract Window Toolkit)を利用して、GUI(Graphical User Interface)アプリケーションを作成する。
AWT以外にもJavaFXやSwingがある。
// フレームを使う
import java.awt.*;
import java.awt.event.*;
public class Sample1 extends Frame
{
public static void main(String[] args)
{
Sample1 sm = new Sample1();
}
public Sample1() // コンストラクタ
{
super("サンプル"); // Frameのコンストラクタ呼び出し
/*
// イベント(閉じる)を受け取る準備
addWindowListener(new SampleWindowListener());
*/
setSize(250,200); // 横×縦
setVisible(true); // 可視
}
/*
// WindowAdapterはウィンドウイベントを受け取る抽象アダプタクラス
class SampleWindowListener extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
*/
}
// end of Sample1.java
|
![]() |
// ラベルを表示する
import java.awt.*;
import java.awt.event.*;
public class Sample2 extends Frame
{
private Label lb;
public static void main(String[] args)
{
Sample2 sm = new Sample2();
}
public Sample2() // コンストラクタ
{
super("サンプル");
lb = new Label("ようこそJavaへ!"); // ラベルを作成
lb.setForeground(Color.blue); // 色を設定
lb.setFont(new Font("Serif", Font.BOLD, 24)); // フォントを設定
add(lb); // ラベルを追加
addWindowListener(new SampleWindowListener());
setSize(250,200);
setVisible(true);
}
class SampleWindowListener extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
}
// end of Sample2.java
|
![]() |
色名 | フィールド | サン プル | 色名 | フィールド | サン プル | |
白 | white | ■ | オレンジ | orange | ■ | |
ライトグレイ | lightGray | ■ | 黄 | yellow | ■ | |
グレイ | gray | ■ | 緑 | green | ■ | |
ダークグレイ | darkGray | ■ | マゼンタ | magenta | ■ | |
黒 | black | ■ | シアン | cyan | ■ | |
赤 | red | ■ | 青 | blue | ■ | |
ピンク | pink | ■ |
|
Fontクラスのstaticフィールド:Font.xxxと書いて使う
|
// ボタンを表示する
import java.awt.*;
import java.awt.event.*;
public class Sample3 extends Frame
{
private Button bt;
public static void main(String[] args)
{
Sample3 sm = new Sample3();
}
public Sample3() // コンストラクタ
{
super("サンプル");
bt = new Button("ようこそ"); // ボタンを作成
bt.setForeground(Color.blue); // 色を設定
bt.setFont(new Font("Serif", Font.BOLD, 24)); // フォントを設定
add(bt); // ボタンを追加
addWindowListener(new SampleWindowListener());
// イベントを受け取る準備
bt.addActionListener(new SampleActionListener());
setSize(250,200);
setVisible(true);
}
class SampleWindowListener extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
// ActionListenerはアクションイベントを受け取るためのリスナーインタフェース
class SampleActionListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
bt.setLabel("Javaへ!");
}
}
}
// end of Sample3.java
|
![]() ↓ ![]() |
ソース | イベント | リスナー |
ウィンドウ addWindowListener() | WindowEvent | WindowListener extends WindowAdapter windowClosing() |
ボタン addActionListener() | ActionEvent | ActionListener actionPerformed() |
// マウスに反応させる
import java.awt.*;
import java.awt.event.*;
public class Sample4 extends Frame
{
private Button bt;
public static void main(String[] args)
{
Sample4 sm = new Sample4();
}
public Sample4() // コンストラクタ
{
super("サンプル");
bt = new Button("ようこそ"); // ボタンを作成
bt.setForeground(Color.blue); // 色を設定
bt.setFont(new Font("Serif", Font.BOLD, 24)); // フォントを設定
add(bt); // ボタンを追加
addWindowListener(new SampleWindowListener());
// イベントを受け取る準備
bt.addMouseListener(new SampleMouseListener());
setSize(250,200);
setVisible(true);
}
class SampleWindowListener extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
// MouseListenerはマウスイベントを受け取るためのリスナーインタフェース
class SampleMouseListener implements MouseListener
{ // 下の5つのメソッドを定義しておかなければならない!
public void mousePressed(MouseEvent e){}
public void mouseReleased(MouseEvent e){}
public void mouseClicked(MouseEvent e){}
// マウスが入ったときの処理
public void mouseEntered(MouseEvent e)
{
bt.setLabel("Javaへ!");
}
// マウスが出たときの処理
public void mouseExited(MouseEvent e)
{
bt.setLabel("ようこそ");
}
}
}
// end of Sample4.java
|
![]() ↓↑ ![]() |
ソース | イベント | リスナー |
ボタン addMouseListener() | MouseEvent | implements MouseListener mouseEntered() mouseExited() ・・・※ |
・・・
// MouseAdapterはマウスイベントを受け取るための抽象アダプタクラス
class SampleMouseListener extends MouseAdapter
{ // 必要なメソッドを定義するたけで良い!
// マウスが入ったときの処理
public void mouseEntered(MouseEvent e)
{
bt.setLabel("Javaへ!");
}
// マウスが出たときの処理
public void mouseExited(MouseEvent e)
{
bt.setLabel("ようこそ");
}
}
}
// end of Sample4_1.java
ソース | イベント | リスナー |
ボタン addMouseListener() | MouseEvent | MouseListener extends MouseAdapter mouseEntered() mouseExited() |
・・・
// MouseAdapterクラスが拡張されて無名クラスとなる
bt.addMouseListener(new MouseAdapter()
{ // イベント処理を登録するメソッドの中に記述することができる
// マウスが入ったときの処理
public void mouseEntered(MouseEvent e)
{
bt.setLabel("Javaへ!");
}
// マウスが出たときの処理
public void mouseExited(MouseEvent e)
{
bt.setLabel("ようこそ");
}
});
・・・
// end of Sample4_2.java
コマンドプロンプトから起動していたプログラムをアプリケーション(application)と呼ぶのに対して、Webブラウザ上で動くプログラムをアプレット(applet)と呼ぶ。
アプレットはWebサーバからダウンロードされてWebブラウザ上で実行されるのに対して、
Webサーバ上で実行されるプログラムはサーブレット(servlet)と呼ばれる。
アプレットではセキュリティーの観点から、ユーザマシン上のファイル操作ができない等、アプリケーションよりも処理が制限されている。
(Webブラウザ上でアプレットを動かすための準備はこちら、このページのサンプルアプレットの実行には、認証ダイアログに対して、
このJavaWeb資料と同様の、ユーザ名:java、パスワード:javajava を入力する)
import java.applet.Applet;
class クラス名 extends Applet
{
}
// 「ようこそJavaアプレットへ!」と表示する
import java.applet.Applet;
import java.awt.Graphics;
public class Sample1 extends Applet
{
public void paint(Graphics g)
{
g.drawString("ようこそJavaアプレットへ!", 50, 50 );
}
}
// end of Sample1.java
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>title</title>
</head>
<body>
<applet code="クラスファイル名" width="幅" height="高さ">
</applet>
</body>
</html>
例:Sample1.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Sample1</title> </head> <body style="background-color: lightblue;"> <applet code="Sample1.class" width="400" height="300"> </applet> </body> </html>
メソッド名 | 機能 |
void drawArc(int x, int y, int width, int height, int startAngle, int arcAngle) void fillArc(int x, int y, int width, int height, int startAngle, int arcAngle) |
円弧を描く 塗りつぶされた... |
Boolean drawImage(Image img, int x, int y, ImageObserver observer) | イメージを描く |
void drawLine(int x1, int y1, int x2, int y2) | 線分を描く |
void drawOval(int x, int y, int width, int height) void fillOval(int x, int y, int width, int height) |
楕円を描く 塗りつぶされた... |
void drawPolygon(int[] xPoints, int[] yPoints, int nPoints) void fillPolygon(int[] xPoints, int[] yPoints, int nPoints) |
多角形を描く 塗りつぶされた... |
void drawRect(int x, int y, int width, int height) void fillRect(int x, int y, int width, int height) |
長方形を描く 塗りつぶされた... |
void drawString(String str, int x, int y) | 文字列を描く |
void setColor(Color c) | 色を設定する |
void setFont(Font font) | フォントを設定する |
// 画像(ファイル)を表示する
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Image;
public class Sample3 extends Applet
{
Image img;
public void init()
{
img = getImage(getDocumentBase(), "Image.gif");
}
public void paint(Graphics g)
{
g.drawImage(img, 50, 50, this);
}
}
// end of Sample3.java
メソッド名 | 呼び出されるタイミング |
init() | Webブラウザが起動され、アプレットが初期化されるとき |
start() | Webブラウザの起動、再読み込みによって、アプレットが開始・再開されるとき |
stop() | 他のWebページに移動して、アプレットを停止するとき |
destroy() | Webブラウザが終了し、アプレットが終了するとき |
MouseListenerインターフェイス addMouseListener()で準備 | |
メソッド | イベント |
mouseClicked() | マウスをクリックしたとき |
mouseEntered() | マウスがアプレット上に入ったとき |
mouseExited() | マウスがアプレットから出たとき |
mousePressed() | マウスのボタンを押したとき |
mouseReleased() | マウスのボタンを放したとき |
![]() | |
MouseMotionListenerインターフェイス addMouseMotionListener()で準備 | |
メソッド | イベント |
mouseDragged() | マウスをドラッグしたとき |
mouseMoved() | マウスを動かしたとき |
// マウスに反応させる
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.event.MouseListener;
import java.awt.event.MouseEvent;
public class Sample4 extends Applet implements MouseListener
// MouseListenerインターフェイスを実装
{
int x = 200, y = 150;
public void init()
{ // イベントを受け取る準備
addMouseListener(this);
}
public void mouseClicked(MouseEvent e)
{
}
public void mouseEntered(MouseEvent e)
{
}
public void mouseExited(MouseEvent e)
{
}
public void mousePressed(MouseEvent e)
{
x = e.getX();
y = e.getY();
}
public void mouseReleased(MouseEvent e)
{
repaint();
}
public void paint(Graphics g)
{
g.fillOval(x-10, y-10, 20, 20);
}
}
// end of Sample4.java
public void init()
{
addMouseListener(new SubMouseAdapter());
}
class SubMouseAdapter extends MouseAdapter
{
public void mousePressed(MouseEvent e)
{
・・・
}
・・・
}
// マウスに反応させる
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class Sample5 extends Applet
{
int x = 200, y = 150;
public void init()
{ // イベントを受け取る準備
addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent e)
{
x = e.getX();
y = e.getY();
}
public void mouseReleased(MouseEvent e)
{
repaint();
}
});
}
public void paint(Graphics g)
{
g.fillOval(x-10, y-10, 20, 20);
}
}
// end of Sample5.java
// 1fpsのアニメーション
import java.applet.Applet;
import java.awt.Graphics;
public class Sample7 extends Applet implements Runnable
// Runnableインターフェイスを実装
{
int num, x = 200, y = 150;
public void init()
{
Thread th = new Thread(this);
th.start();
}
public void run()
{
try
{
for(int i = 0; i < 20; i++ )
{
num = i;
x+=2;
y+=1;
repaint();
Thread.sleep(1000);
}
}
catch(InterruptedException e){}
}
public void paint(Graphics g)
{
String str = num + "です";
g.drawString(str, 10, 10);
g.fillOval(x, y, 10, 10);
}
}
// end of Sample7.java