■簡単なアプレットプログラムの例1
import java.applet.Applet; // 短名 Applet import java.awt.Graphics; // 短名 Graphics public class Helloa extends Applet { // サブクラス Helloa public void paint(Graphics g) { // paint()メソッド g.drawString("Hello, Java world!", 30, 40); // 文字列描画メソッド } } |
■実行結果
public class Helloa extends Applet { public void paint(Graphics g) { g.drawString("Hello, Java world!", 30, 40); } }
■簡単なアプレットプログラムの例2
import java.awt.*; // ウィンドウ関連ツール(Abstract Window Toolkit)を使う import java.util.Random; // 乱数を使う import java.applet.Applet; public class repo2c extends Applet { // アプレットの名前は repo2c にする public void paint(Graphics g) { // 描画手順は以下の通り Random a = new Random(); // 新しい乱数列 a を用意する for (int i = 0; i < 1000; i++) { // 0 から 999 までループ g.setColor(new Color(a.nextInt())); // 整数の乱数を発生し,それで色を決める int x = (int)(300 * a.nextDouble()); // 整数変数 x に 300×(0以上1未満の実数の乱数) を(切り捨てて整数にして)代入する int y = (int)(100 * a.nextDouble()); // 上と同様 int r = (int)(40 * a.nextDouble()) + 10; // 上と同様 g.fillOval(x - r, y - r, 2 * r, 2 * r); // 中心 (x,y),半径 r の円板を描く } } } |
■実行結果
Appletクラスは全てのアプレットのスーパークラスです。このクラスは、アプレットとその環境との間の標準インタフェースの役割を果たします。
Graphics クラスは、すべてのグラフィックコンテキストの抽象基底クラスです。グラフィックコンテキストによってアプリケーションは、各種デバイスにより実現されるコンポーネント上やオフスクリーンイメージ上に描画できます。
Graphicsオブジェクトには、グラフィックを出力するメソッド郡がカプセル化されています。線、円、四角形、文字列、イメージ、文字、弧を描画することが出来ます。
これらの、別のパッケージ内のクラスにアクセスする場合は名前を直接指定できません。
この問題を解決する一つの方法は、完全修飾名を使って型を指定することです。
例えば、上のプログラムの4行目を
5: public void paint(java.awt.Graphics g) {と記述することで、Graphicsオブジェクトを用いることが出来ます。
1:import java.applet.Applet; 2:import java.awt.Graphics;と記述することで完全修飾名の java.applet.Applet や java.awt.Graphics を Applet や Grahpics だけで代用することが出来ます。
継承とは、スーパークラス(ここではAppletクラス)の機能をサブクラス(ここではRep2_aクラス)で再利用できるようにすることです。
extends キーワードを用いることで2つのクラス間に継承関係を形成することが出来ます。
アプレットでは、必ずAppletクラスを継承しなければいけません。
paint()メソッドは、元々Componentクラスに定義されているメソッドです。
ComponentクラスはAppletクラスまで継承されており、AppletクラスはRep2_aクラスに継承されています。
このように、スーパークラスで定義されているメソッドをそのサブクラスで宣言することを、メソッドをオーバーライドするといいます。
paintメソッドはGraphicsオブジェクトを引数として受け取り、アプレットの出力を生成します。
import java.applet.Applet; import java.awt.Graphics; public class repo2art extends Applet { public void paint(Graphics g) { g.fillRect(0,0,80,80); g.drawOval(100,0,80,80); } }
■実行結果
■考察
()内の数字で出力する図形の座標と高さ、幅を決めます。import java.applet.Applet; import java.awt.Graphics; import java.awt.Color; public class repo2iro extends Applet{ public void init() { this.setBackground(Color.black); //ヌリキハ、??ヒ、ケ、? } public void paint(Graphics g){ g.setColor(Color.blue); g.fillOval(5,5,60,60); Color kiro = new Color(240,240,0);// イォソァ、ホColorキソ・ェ・ヨ・ク・ァ・ッ・ネ g.setColor(kiro); g.fillOval(75,5,60 g.setColor( new Color(255,0,0)); g.fillOval(145,5,60,60); } }
■実行結果
■考察
setColorで色を決めます。決め方は3つあって代表的なパッケージ
a,java.lang Javaプログラム言語の設計にあたり基本的なクラスを提供します。全てのクラ スのルートとなる Object クラス、文字列を参照するStringクラス、基本デー タ型のラップクラス(Integer, Character 等のクラス)などが含まれます。 b, java.io データストリーム、直列化、ファイルシステムによるシステム入出力用に 提供されています。 c,java.applet アプレットの作成、およびアプレットとアプレットコンテキストとの通信に 使用するクラスの作成に必要なクラスを提供します。 d,java.awt ユーザインタフェースの作成と、グラフィックスとイメージのペイントのための クラスがすべて含まれています。JDK1.2 (Java2) 以降から Swing に拡張された。 e,java.beans JavaBeans の開発に関連するクラスが含まれています。 f,java.net ネットワーク対応アプリケーションを実装するためのクラスを提供します。 g,java.util このパッケージには、コレクションフレームワーク、従来のコレクションクラス、 イベントモデル、日付と時刻の機構、国際化、およびさまざまなユーティリティ クラス (文字列トークナイザ、乱数ジェネレータ、ビット配列) が含まれていま す。 h,javax.swing GUI (Graphical User Interface) コンポーネントで、 JFC (Java Foundation Classes) の一部。すべてのプラットフォームで可能な限り同じように機能する、 「軽量」(Java 共通言語) コンポーネントのセットを提供します。 AWT (Abstract Window Toolkit) の機能強化(継承)として実装。AWT が実行環境の ウィンドウシステム特有のコードを利用しているのに対して、 Swing は完全に Java だけで作られたコンポーネント。 i,org.omg.CORBA OMG CORBA API の Java プログラミング言語 (ORB クラスを含む) へのマッピン グを提供します。