ホームページ > Java > &#&ベース > Javaで簡単なグラフィックを描画する方法

Javaで簡単なグラフィックを描画する方法

王林
リリース: 2019-11-22 16:18:20
オリジナル
6953 人が閲覧しました

Javaで簡単なグラフィックを描画する方法

Java で基本的なグラフィックを描画するには、java.awt パッケージにある Java クラス ライブラリの Graphics クラスを使用できます。独自の Java プログラム ファイルで Graphics クラスを使用するには、import java.awt.Graphics ステートメントを使用して Graphics クラスをインポートする必要があります。

Graphics クラスは、主に線分の描画、長方形の描画、円の描画、色付きグラフィックの描画、楕円の描画、円弧の描画、多角形の描画などを含む、基本的な幾何学的描画メソッドを提供します。このプロジェクトでは直線を描画する機能のみを使用しています。その他のグラフィック描画については、クリックして Java API を表示してください。

Graphics クラスのdrawLine() メソッド: drawLine(int x1,int y1,int x2,int y2)

の関数このメソッド Yes: このグラフィックス コンテキストの座標系の現在の色を使用して、点 (x1,y1) と (x2,y2) の間に線を描画します。

ここで理解する必要がある概念がいくつかあります:

1) グラフィックス コンテキスト: 平たく言えば、描画環境です。各ウィンドウ コンポーネント (メイン ウィンドウ、ボタンなど) には独自のグラフィックス コンテキスト オブジェクトがあり、このオブジェクトを使用してコンポーネント上に画像を描画します。このオブジェクトは Graphics オブジェクトです。

2) グラフィックス コンテキストの取得方法: 描画するコンポーネント上で、そのコンポーネントの getGraphics() メソッドを呼び出してコンポーネントのグラフィックス コンテキスト オブジェクトを取得し、このオブジェクトを使用して描画します。 。

3)、Java 座標系:

Java の座標原点 (0, 0) は、画面の左上隅にあります。座標の測定単位はピクセルであり、水平方向は右方向が X 軸の正方向、垂直下方向が Y 軸の正方向 各座標点の値は画面上のピクセルの位置を表します すべての座標点の値は次の図に示すように、整数:

Javaで簡単なグラフィックを描画する方法

4) 現在の色: グラフィックス コンテキストの現在の色を指します。各グラフィックス コンテキストには独自の現在の色があります。色は Graphics オブジェクトの getColor() メソッドを通じて取得でき、色は setColor() メソッドによって設定できます。

例は次のとおりです:

ステップ 1: メンバー変数を DrawSee クラスに追加して、ゲーム領域の特性を記述します。

DrawSee クラスの場合、このクラスの主な機能はユーザーと対話することです。つまり、ゲーム領域の表示、数字の表示、ユーザーのマウス クリックへの応答、ユーザーのマウス クリックの結果の表示です。 、など。ここで、10 行 10 列のゲーム領域を描画する問題を考えます。まず、次の 4 つのメンバー変数を DrawSee クラスに追加します。

import java.awt.Color;
import java.awt.Container;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
public class DrawSee extends JFrame {
    private static final int sx = 50;//游戏区域10*10方块的起始横坐标
    private static final int sy = 50;//游戏区域10*10方块的起始纵坐标
    private static final int w = 40;//每个小方格的边长
    private static final int rw = 400;//游戏区域10*10方块的边长
    ...
}
ログイン後にコピー

ステップ 2: ゲーム領域を描画するメソッドを追加します (つまり、10 行 10 列の赤いグリッドを描画します)

public void paintComponents(Graphics g) {
        try {
            // 设置线条颜色为红色
            g.setColor(Color.RED);
            // 绘制外层矩形框
            g.drawRect(sx, sy, rw, rw);            
            /* 绘制水平10个,垂直10个方格。
             * 即水平方向9条线,垂直方向9条线,
             * 外围四周4条线已经画过了,不需要再画。
             * 同时内部64个方格填写数字。
             */
            for(int i = 1; i < 10; i ++) {
                // 绘制第i条竖直线
                g.drawLine(sx + (i * w), sy, sx + (i * w), sy + rw);
                // 绘制第i条水平线
                g.drawLine(sx, sy + (i * w), sx + rw, sy + (i * w));                
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
ログイン後にコピー

概要:

import java.awt.Color;
import java.awt.Container;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
/**
 * 
 * 程序入口
 *
 */
public class TestDrawLine {   
    public static void main(String[] args) {   
        new DrawSee();
    }   
}   
class DrawSee extends JFrame {
    private static final int sx = 50;//小方格宽度
    private static final int sy = 50;//小方格高度
    private static final int w = 40;
    private static final int rw = 400;
    private Graphics jg;
    private Color rectColor = new Color(0xf5f5f5);
    /**
     * DrawSee构造方法
     */
    public DrawSee() {
        Container p = getContentPane();
        setBounds(100, 100, 500, 500);
        setVisible(true);
        p.setBackground(rectColor);
        setLayout(null);   
        setResizable(false);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        
        try {    
            Thread.sleep(500);
        } catch (Exception e) {
            e.printStackTrace();
        }        
        // 获取专门用于在窗口界面上绘图的对象
        jg =  this.getGraphics();
        // 绘制游戏区域
        paintComponents(jg);         
    }
    public void paintComponents(Graphics g) {
        try {
            // 设置线条颜色为红色
            g.setColor(Color.RED);
            // 绘制外层矩形框
            g.drawRect(sx, sy, rw, rw);
            
            /* 绘制水平10个,垂直10个方格。
             * 即水平方向9条线,垂直方向9条线,
             * 外围四周4条线已经画过了,不需要再画。
             * 同时内部64个方格填写数字。
             */
            for(int i = 1; i < 10; i ++) {
                // 绘制第i条竖直线
                g.drawLine(sx + (i * w), sy, sx + (i * w), sy + rw);
                
                // 绘制第i条水平线
                g.drawLine(sx, sy + (i * w), sx + rw, sy + (i * w));
                
                // 填写第i行从第1个方格到第8个方格里面的数字(方格序号从0开始)
                for(int j = 0; j < 10; j ++) {
                    //drawString(g, j, i);                    
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
ログイン後にコピー

結果は次のとおりです:

Javaで簡単なグラフィックを描画する方法

推奨チュートリアル: Java 開発を始める

以上がJavaで簡単なグラフィックを描画する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート