2009年5月27日水曜日

AWT グラフィック表示

・表示に関するもの
  Graphics.setColor(Color);
  描画色を設定
  Color = Graphics.getColor();
  現在の描画色をColorインスタンスとして返す

・フォントに関するもの
  Graphics.setFont(Font);
  描画フォントを設定
  Font = Graphics.getFont();
  現在のフォントをFontインスタンスとして返す

・基本図形の描画
  Graphics.drawRect(横位置,縦位置,横幅,縦幅);
  枠線のみの四角形を描く
  Graphics.fillRect(横位置,縦位置,横幅,縦幅);
  内部を塗りつぶした四角形を描く

  Graphics.drawOval(横位置,縦位置,横幅,縦幅);
  輪郭線のみの円を描く
  Graphics.fillOval(横位置,縦位置,横幅,縦幅);
  内部を塗りつぶした円を描く

  Graphics.drawLine(横位置1,縦位置1,横位置2,縦位置2);
  2点を結ぶ直線を描く

  Graphics.draw3DRect(横位置,縦位置,横幅,縦幅,boolean);
  輪郭を立体化した四角形を描く。
  booleanがtrueの場合飛び出して、falseの場合へこんで描く

  Graphics.drawRoundRect(横位置,縦位置,横幅,縦幅,丸みの横幅,丸みの縦幅);
  角の丸くなった枠線のみの四角形を描きます。
  Graphics.fillRoundRect(横位置,縦位置,横幅,縦幅,丸みの横幅,丸みの縦幅);
  角の丸くなった塗りつぶした四角形を描きます。

  Graphics.drawArc(横位置,縦位置,横幅,縦幅,開始角度,描画角度);
  円弧の曲線を描く
  Graphics.fillArc(横位置,縦位置,横幅,縦幅,開始角度,描画角度);
  扇形図形を描く

  Graphics.drawPolyline(int配列1,int配列2,int値);
  連続する開いた直線図形を描く
  Graphics.drawPolygon(int配列1,int配列2,int値);
  連続する閉じた直線図形を描く
  Graphics.fillPolygon(int配列1,int配列2,int値);
  連続する閉じた直線図形の内部を塗り潰す
  Graphics.drawPolygon(Polygon);
  連続する閉じた直線図形のインスタンスで描く
  Graphics.drawPolygon(Polygon);
  連続する閉じた直線図形のインスタンスの内部を塗り潰す

・イメージファイル(JPEG,GIF,PNG)の描画
  ①ToolkitクラスのメソッドでデフォルトのToolkitインスタンスを得る

Toolkit tk;
tk = Toolkit.getDefaultToolkit();

  ②イメージファイルからイメージを読み込みImageインスタンスとして返す

Image img;
img = Toolkit.getImage(String);
img = Toolkit.getImage(URL);

  ③イメージを表示する

Grahics.drawImage(image,横位置,縦位置,ImageObserver);
Grahics.drawImage(image,横位置,縦位置,Color,ImageObserver);
Grahics.drawImage(image,横位置,縦位置,横幅,縦幅,ImageObserver);
Grahics.drawImage(image,横位置,縦位置,横幅,縦幅,Color,ImageObserver);
Grahics.drawImage(image,横位置1,縦位置1,横幅1,縦幅1,横位置2,縦位置2,横幅2,縦幅2,ImageObserver);
Grahics.drawImage(image,横位置1,縦位置1,横幅1,縦幅1,横位置2,縦位置2,横幅2,縦幅2,Color,ImageObserver);


・イメージファイル(JPEG,GIF,PNG)の描画(paint以外で描画)
  マウスをクリックしたら描画をする

public class ImageApp extends Frame{

Image im = null;
Graphics g2 = null;

public static void main(String[] args) {
new ImageApp();
}

public ImageApp(){
this.addMouseListener(new MyMouseAdapter());
this.setSize(300,200);
this.setVisible(true);
}

public void paint(Graphics g){
if(im == null){
im = this.createImage(this.getWidth(),this.getHeight());
g2 = im.getGraphics();
}
g.drawImage(im, 0, 0, this);
}

class MyMouseAdapter extends MouseAdapter{
public void mouseClicked(MouseEvent ev){
int x = ev.getX();
int y = ev.getY();
for(int i=0; i<10; i++){
g2.setColor(new Color(255,i*25,i*25));
g2.drawOval(x-i*3, y-i*3, i*3*2, i*3*2);
}
g2.dispose();
}
}
}


・Graphicsを取得する
  コンポーネントのGraphicsインスタンスのコピーを返す
  Graphics g = this.getGraphics();

・Graphicsを破棄する
  Graphicsインスタンスを破棄する
  Graphics.dispose();

・イメージファイル(JPEG,GIF,PNG)の描画(imageインスタンスを使用したバッファリング)
  マウスをクリックしたら描画をする


public class FileioApp extends Frame{

private static final long serialVersionUID = 1L;
Image im = null;
Graphics g2 = null;

public static void main(String[] args) {
new FileioApp();
}

public void paint(Graphics g){
if(im == null){
im = this.createImage(this.getWidth(), this.getHeight());
g2 = im.getGraphics();
}
g.drawImage(im, 0, 0, this);
}

public FileioApp(){
this.addMouseListener(new MyMouseAdapter());
this.setSize(300,200);
this.setVisible(true);
}

class MyMouseAdapter extends MouseAdapter{
public void mouseClicked(MouseEvent ev){
int x = ev.getX();
int y = ev.getY();
for(int i=0;i<10;i++){
g2.setColor(new Color(255,i*25,i*25));
g2.drawOval(x-i*3, y-i*3, i*3*2,i*3*2);
}
repaint();
}
}
}

0 件のコメント:

コメントを投稿