トップ->Java Applet入門

Java入門内検索

目次
Javaトップ
0. はじめに

1. Javaの基礎
   1. コンパイル方法・実行方法
   2. 予約語
   3. 構成
   4. データの型と宣言
   5. 定数と変数
   6. 簡単な演算
   7. ディスプレイへの表示
   8. 文字列

2. 制御文
   1. 順次構造
   2. 単一分岐
   3. 多重分岐
   4. ケース構造
   5. 反復構造(while)
   6. 反復構造(do)
   7. 反復構造(for)
   8. 補助制御文
   9. 練習問題
   10.練習問題
   11.多重ループの抜け方

3. 配列
   1. 配列とは
   2. 配列の宣言と初期化
   3. 配列の使用法
   4. 練習問題
   5. 2次配列と多次元配列
   6. 練習問題

4. クラスの基礎
   1. クラスとは
   2. クラスの作成
   3. コンストラクタ
   4. 例題
   5. 演算子==とequalsメソッド

5. 演算子
   1. 演算子の種類
   2. インクリメント演算子とデクリメント演算子
   3. 複合代入演算子
   4. ビット演算子
   5. シフト演算子
   6. キャスト演算子
   7. 順次演算子
   8. 条件演算子(三項演算子)
   9. instanceof演算子
   10.演算子の優先順位
   11.式と値
   12.条件式と値
   13.練習問題

6. オブジェクト指向とは
   1. オブジェクト指向とクラス
   2. 継承
   3. カプセル化
   4. ポリモーフィズム

7. クラス
   1. thisキーワード
   2. public, protected, private
   3. 静的変数・静的メソッド・静的ブロック
   4. ローカル変数
   5. メソッドの引数
   6. null
   7. 練習問題
   8. インナークラス(内部クラス)
   9. 無名インナークラス(無名内部クラス)
   10. クラスの包含
   11. 練習問題

8. 継承
   1. 継承とは
   2. スーパークラスのコンストラクタ
   3. 継承とキャスト
   4. スコープ
   5. クラスの作成
   6. abstract
   7. 例題)お絵かきソフト
   8. 継承と包含

9. インターフェース
   1. インターフェースとは
   2. インターフェースの宣言
   3. インターフェースの参照
   4. インターフェースの修飾子
   5. インターフェースの継承
   6. インターフェースとinstanceof演算子

10. パッケージ
   1. パッケージとは
   2. パッケージの宣言
   3. クラスパス
   4. import

11. 例外
   1. 例外とは
   2. 例外が起きたら
   3. 例外の種類
   4. catchブロックの検索
   5. throw
   6. throws
   7. エラーと例外
   8. 独自の例外

12. マルチスレッド
   1. スレッドとは
   2. スレッドのライフサイクル
   3. スレッドの作成(Threadクラス)
   4. Threadクラスのメソッド
   5. スレッドの作成(Runnableインターフェース)
   6. 同期
   7. デッドロック
   8. スレッド間の通信

13. ガーベージコレクター
   1. ガーベージコレクターとは
   2. ガーベージコレクターの実行
   3. finalize

14. 有用な(?)クラス群
   1. Math
   2. Random
   3. System
   4. Vector
   5. Stack
   6. Hashtable
   7. Enumeration
   8. String
   9. StringTokenizer
   10. Object
   11. Number
   12. Byte
   13. Short
   14. Integer
   15. Long
   16. Float
   17. Double
   18. BigInteger
   19. BigDecimal
   20. Character
   21. Date
   22. Calendar

15. 入出力
   1. ファイルとディレクトリ
   2. ストリームの種類
   3. 文字ストリーム
   4. Reader
   5. CharArrayReader
   6. StringReader
   7. InputStreamReader
   8. FileReader
   9. BufferedReader
   10. Writer
   11. CharArrayWriter
   12. StringWriter
   13. OutputStreamWriter
   14. FileWriter
   15. PrintWriter
   16. BufferedWriter
   17. バイトストリーム
   18. InputStream
   19. ByteArrayInputStream
   20. FileInputStream
   21. FilterInputStream
   22. BufferedInputStream
   23. DataInputStream
   24. OutputStream
   25. ByteArrayOutputStream
   26. FileOutputStream
   27. FilterOutputStream
   28. BufferedOutputStream
   29. PrintStream
   30. DataOutputStream
   31. ランダムアクセスファイル
   32. スレッド間通信
       PipedInputStream
       PipedOutputStream
   33. クラスの保存
       ObjectInputStream
       ObjectOutputStream
       Serializable
   34. StreamTokenizer
   35. 標準入出力
       キーボードからの入力(標準入力)
       標準出力
       標準エラー出力
   36. 練習問題

16. ネットワーク
   1. インターネットアドレス
   2. TCP/IP通信
   3. UDP通信
   4. URL
   5. 練習問題
   6. マルチキャスト
   7. RMI

17. 中間試験
   1. 問題:Webサーバーを作りなさい
   2. HTTPプロトコル
   3. クラス設計
   4. 解答例

18. AWT
   1. AWTとは
   2. Component
   3. Container
   4. Frame
   5. Button
   6. レイアウト
   7. BorderLayout
   8. FlowLayout
   9. GridLayout
   10. CardLayout
   11. nullレイアウト
   12. イベントとイベントリスナー
   13. ActionListener
   14. Panel
   15. Label
   16. CheckBoxとItemListener
   17. CheckBoxGroup
   18. Choice
   19. List
   20. TextFieldとTextListener
   21. TextArea
   22. ScrollbarとAdjastmentListener
   23. Canvas
   24. 練習問題(計算機)
   25. Point
   26. Dimension
   27. Color
   28. Font
   29. Graphics
   30. 練習問題
   31. 練習問題
   32. ダブルバッファ
   33. イベント その2
       ActionEvent
       ItemEvent
       AdjustmentEvent
   34. KeyListenerとKeyEvent
       InputEvent
   35. MouseListenerとMouseEvent
   36. MouseMotionListener
   37. FocusListenerとFosusEvent
   38. WindowListenerとWindowEvent
   39. ComponentListenerとComponentEvent
   40. ContainerListenerとContainerEvent
   41. アダプタクラスとインナークラス
   42. 無名インナークラス
   43. 練習問題 お絵かき
   44. WindowとDialog、FileDialog
   45. メニュー
   46. ポップアップメニュー
   47. ショートカット
   48. カーソル

19. Java Applet
   1. Java Appletとは
   2. 最初のJava Applet
   3. Appletクラス
   4. Appletクラスのライフサイクル
   5. AppletContext
   6. イメージ
   7. パラメーター
   8. 練習問題 スライドショー
   9. Jarファイル
   10. 練習問題 時計

20. その他のチップス
   1. Javaから別のプログラムを実行させる
   2. StringBuffer
   3. 環境変数の取得
   4. 基数表記
   5. インスタンスのコピー
   6. 値渡しと参照渡し
   7. クラスオブジェクトの比較

21. 修了試験 ↓これより下は工事中です。
   1. 考え中
   2. 考え中
   3.
   4.

22. そしてその後は・・・
   1. ヒューマンアカデミー Javaプログラマー本科
   2. Appli-Style.com iアプリ作成に挑戦
   3. SJC-A 受験チケット申込


・ このページの先頭に戻る
・ トップページに戻る



・ このページの先頭に戻る
・ トップページに戻る

トップ-> Java入門:18章 AWT-> 29.Graphics

←前ページへ :  トップへ :  次ページへ→

29. Graphics

  Graphicsクラスは、Component上に描画するためのクラスです。例えば線や四角形、円、文字、画像などを描画します。

  Graphicsのコンストラクタはprotectedで宣言されており、プログラマが勝手にGraphicsインスタンスを作成することはできません。ComponentのサブクラスはComponent内に何かしらの描画をしなければならない時に、paintメソッドが呼ばれ、その引数でGraphicsオブジェクトが渡されます。これを利用して描画を行います。実際の例はこのページの下にあるサンプルプログラムを見てみてください。

  「描画をしなければならない時」とは、例えば一番最初、そのコンポーネントやフレームのサイズが変わった時、上に別のウインドウが重なり、それがどかされた時などがあげられます。

メソッド
void clearRect(int x, int y, int width, int height)
    座標(x, y)から幅width、高さheightの領域をそのComponentで設定されている背景色(setBackgroundメソッド)でクリアします。
void drawLine(int x1, int y1, int x2, int y2)
    座標(x1, y1)と座標(x2, y2)を結ぶ線を描画します。
    色は、setColorメソッドで指定した色です。
void drawRect(int x, int y, int width, int height)
    座標(x, y)から幅width、高さheightの四角形を描画します。
    色は、setColorメソッドで指定した色です。
void draw3DRect(int x, int y, int width, int height, boolean raised)
    座標(x, y)から幅width、高さheightの四角形を立体的に描画します。
    raisedがtrueなら浮き出たように、falseならへこんでいるように見えるよう描画します。
    色は、setColorメソッドで指定した色です。
void drawRoundRect(int x, int y, int width, int height, int ardWidth, int arcHeight)
    座標(x, y)から幅width、高さheightの四角形を描画します。
    ただし、四隅をardWidth(4 隅の弧の水平方向の直径)、arcHeight(4 隅の弧の垂直方向の直径)で丸めます。
    色は、setColorメソッドで指定した色です。
void drawPolyline(int[] xPoints, int[] yPoints, int n)
    座標(x[0], y[0])−座標(x[1], y[1])−・・・・−座標(x[n-1], y[n-1])で定義される連続した直線を描画します。始点と終点は閉じません。
    色は、setColorメソッドで指定した色です。
    nが配列の大きさを超えた場合はArrayIndexOutOfBoundsExceptionが投げられます。
void drawPolygon(int[] xPoints, int[] yPoints, int n)
    座標(x[0], y[0])−座標(x[1], y[1])−・・・・−座標(x[n-1], y[n-1])で定義される連続した直線を描画します。始点と終点は閉じます。
    色は、setColorメソッドで指定した色です。
    nが配列の大きさを超えた場合はArrayIndexOutOfBoundsExceptionが投げられます。
void drawOval(int x, int y, int width, int height)
    座標(x, y)を左上とする幅width+1、高さheight+1の楕円を描画します。
    色は、setColorメソッドで指定した色です。
void drawArc(int x, int y, int width, int height, int startAngle, int endAngle)
    座標(x, y)を左上とする幅width+1、高さheight+1の楕円弧を描画します。
    startAngleの単位は度で、0度ならば右。プラスなら反時計方向、マイナスなら時計回り方向に進んだ角度から、endAngle度の大きさの弧を描画します。
    つまり、startAngle=90, endAngleならば、上から左にかけて90度の楕円弧になります。
    色は、setColorメソッドで指定した色です。
void drawString(String text, int x, int y)
    座標(x, y)の位置からtextで指定された文字列を描画します。
    色は、setColorメソッドで指定した色です。
void drawChars(char[] text, int i, int len, int x, int y)
    座標(x, y)の位置から文字配列texti文字目からlen文字を描画します。
    色は、setColorメソッドで指定した色です。
void drawChars(byte[] text, int i, int len, int x, int y)
    座標(x, y)の位置から文字配列texti文字目からlen文字を描画します。
    色は、setColorメソッドで指定した色です。
void drawImage(Image img, int x, int y, ImageObserver observer)
    座標(x, y)を左上としてイメージ画像imgを描画します。
    ImageおよびImageObserverについては後述します。
void drawImage(Image img, int x, int y, Color bgColor, ImageObserver observer)
    座標(x, y)を左上としてイメージ画像imgを描画します。
    透明なエリアはbgColorで塗りつぶされます。
    ImageおよびImageObserverについては後述します。
void drawImage(Image img, int x, int y, int width, int height, ImageObserver observer)
    座標(x, y)を左上としてイメージ画像imgを幅width、高さheightになるように縮小あるいは拡大して描画します。
    ImageおよびImageObserverについては後述します。
void drawImage(Image img, int x, int y, int width, int height, Color bgColor, ImageObserver observer)
    座標(x, y)を左上としてイメージ画像imgを幅width、高さheightになるように縮小あるいは拡大して描画します。
    透明なエリアはbgColorで塗りつぶされます。
    ImageおよびImageObserverについては後述します。
void drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer)
    imgの座標(sx1, sy1)−座標(sx2, sy2)のエリアを座標(dx1, dy1)−座標(dx2, dy2)のエリアに縮小あるいは拡大して描画します。
    ImageおよびImageObserverについては後述します。
void drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, Color bgColor, ImageObserver observer)
    imgの座標(sx1, sy1)−座標(sx2, sy2)のエリアを座標(dx1, dy1)−座標(dx2, dy2)のエリアに縮小あるいは拡大して描画します。
    透明なエリアはbgColorで塗りつぶされます。
    ImageおよびImageObserverについては後述します。
void fillRect(int x, int y, int width, int height)
    座標(x, y)から幅width、高さheightの四角形を描画し、中を塗りつぶします。
    色は、setColorメソッドで指定した色です。
void fill3DRect(int x, int y, int width, int height, boolean raised)
    座標(x, y)から幅width、高さheightの四角形を立体的に描画し、塗りつぶします。
    raisedがtrueなら浮き出たように、falseならへこんでいるように見えるよう描画します。
    色は、setColorメソッドで指定した色です。
void fillRoundRect(int x, int y, int width, int height, int ardWidth, int arcHeight)
    座標(x, y)から幅width、高さheightの四角形を描画し、中を塗りつぶします。
    ただし、四隅をardWidth(4 隅の弧の水平方向の直径)、arcHeight(4 隅の弧の垂直方向の直径)で丸めます。
    色は、setColorメソッドで指定した色です。
void fillPolygon(int[] xPoints, int[] yPoints, int n)
    座標(x[0], y[0])−座標(x[1], y[1])−・・・・−座標(x[n-1], y[n-1])で定義される連続した直線を描画します。始点と終点は閉じます。
    中は塗りつぶされます。
    色は、setColorメソッドで指定した色です。
    nが配列の大きさを超えた場合はArrayIndexOutOfBoundsExceptionが投げられます。
void fillOval(int x, int y, int width, int height)
    座標(x, y)を左上とする幅width+1、高さheight+1の楕円を描画し、中を塗りつぶします。
    色は、setColorメソッドで指定した色です。
void fillArc(int x, int y, int width, int height, int startAngle, int endAngle)
    座標(x, y)を左上とする幅width+1、高さheight+1の楕円弧を描画し、中を塗りつぶします。
    startAngleの単位は度で、0度ならば右。プラスなら反時計方向、マイナスなら時計回り方向に進んだ角度から、endAngle度の大きさの弧を描画します。
    つまり、startAngle=90, endAngleならば、上から左にかけて90度の楕円弧になります。
    色は、setColorメソッドで指定した色です。
Color getColor()
    現在の描画カラーを返します。
Font getFont()
    現在のフォントを返します。
FontMetrics getFontMetrics()
    現在のフォントメトリクスを返します。
    FontMetricsについては後述します。
void setColor(Color)
    描画カラーを設定します。
void setFont(Font)
    フォントを設定します。
void copyArea(int x, int y, int width, int height, int dx, int dy)
    座標(x, y)から幅width、高さheightの領域を、座標(dx, dy)にコピーします。
Graphics create()
    現在のGraphicsオブジェクトをコピーします。
    詳しい使い方は後述します。
Graphics create(int x, int y, int width, int height)
    現在のGraphicsオブジェクトの座標(x, y)から幅width、高さheightの領域をコピーし、返します。

  なお、座標において、マイナスや領域を越えた位置を指定した場合は、無効な領域は無視されます。

  適当な背景色、描画色で、フレームのほぼ真ん中に塗りつぶされた円を描画する例を示します。

import java.awt.*;

class Test{
    public static void main(String args[]){

        /* フレームを作成します。*/
        Frame frm = new Frame("18-29");

        /* フレームのサイズを変更します。*/
        frm.setSize(new Dimension(300,300));

        /* フレームに独自のキャンバスを追加します。*/
        frm.add(new MyCanvas());

        /* フレームを見えるようにします。*/
        frm.setVisible(true);
    }
}

/* 独自のキャンバスクラス */
class MyCanvas extends Canvas{
    Color fClr = Color.darkGray;      /* 描画色 */
    Color bClr = Color.lightGray;     /* 背景色 */
    int   radius = 50;                /* 円の半径 */

    /* Componentクラスは描画が必要になるとpaintメソッドが自動で呼ばれる。*/
    /* この時に渡されるGraphicsオブジェクトを利用することで、描画が可能になる。*/
    public void paint(Graphics g){
        /* フレームのサイズを取得する */
        Dimension d = getSize();

        /* ほぼ真ん中を計算する */
        int x = d.width  / 2 - radius;
        int y = d.height / 2 - radius;

        /* 背景色を設定 */
        setBackground(bClr);

        /* 描画色を設定 */
        g.setColor(fClr);

        /* 円を描画 */
        g.fillOval(x, y, radius*2, radius*2);
    }
}

  プログラムは例示しませんが、他のメソッドをいろいろ試してみてください。


←前ページへ :  トップへ :  次ページへ→