Nanashi-softプログラマ専用Javaアプリケーション


◇Javaアプリケーション-点を打つ-

◎点を打つ方法
実は点を打つメソッドはありません
他の用途のメソッドを使用して行います

・線を引くメソッドを使用する
drawLine(「始点X1」, 「始点Y1」, 「終点X2」, 「終点Y2」)
これの始点と終点を同じ値にすれば点になります

・四角い枠を描くメソッドを使用する
drawRect(「四角の左上X」, 「四角の左上Y」, 「四角の幅」, 「四角の高さ」)
これの幅と高さを1にすれば点になります

・四角く塗りつぶすメソッドを使用する
fillRect(「四角の左上X」, 「四角の左上Y」, 「四角の幅」, 「四角の高さ」)
これの幅と高さを1にすれば点になります

どれを使用するかは,環境によって異なります
経験上,環境によってバグがあり点が描画出来ない事がありました
例えば四角は必ず2ドットサイズで描画されるバグのある機器がありましたし,1ドットのラインを描画しようとすると表示されない場合もありました

◎Canvas上に描く
paint内に記述してみます

  static class fstCanvas extends anvas{
    public void paint(Graphics g){
      g.drawLine(100,100,100,100);
    }
  }

これをビルドして実行すると,黒い点が表示されています(よく見ないとわかりません)

◎色を変えてランダムに点を打つ
よくある,画面上にランダムで点を打つサンプルです

import java.awt.*;
import java.awt.event.*;

public class fst extends Frame{
  public static final void main(final String[] args){
    //ウィンドウ生成
    Frame app=new Frame();
    //タイトル設定
    app.setTitle("Title");
    //ウィンドウサイズ設定(タイトルや枠も含んだサイズ)
    app.setSize(240, 240);
    //キャンバスを配置
    fstCanvas cvs=new fstCanvas();
    app.add(cvs);
    //ウィンドウ表示
    app.setVisible(true);
    //無限ループ
    while (true){
      //画面再描画
      cvs.repaint();
    }
  }

  static class fstCanvas extends Canvas{
    public void paint(Graphics g){
      //座標用変数
      int x, y;
      //カラー用変数
      int red, green, blue;

      //ランダムに座標を生成
      x = (int)(Math.random() * 240);
      y = (int)(Math.random() * 240);

      //ランダムにカラーを生成
      red = (int)(Math.random() * 255);
      green = (int)(Math.random() * 255);
      blue = (int)(Math.random() * 255);

      //ペンの色を変える
      g.setColor(new Color(red, green, blue));

      //点を描画する
      g.drawLine(x, y, x, y);
    }

    //updateメソッドを乗っ取って,画面クリアを防ぐ
    public void update(Graphics g){
        paint(g);
    }
  }
}



TOPプログラマ専用Javaアプリケーション