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 軸の正方向 各座標点の値は画面上のピクセルの位置を表します すべての座標点の値は次の図に示すように、整数:
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で簡単なグラフィックを描画する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。