Heim  >  Artikel  >  Java  >  So zeichnen Sie einfache Grafiken in Java

So zeichnen Sie einfache Grafiken in Java

王林
王林Original
2019-11-22 16:18:206949Durchsuche

So zeichnen Sie einfache Grafiken in Java

Um grundlegende Grafiken in Java zu zeichnen, können Sie die Graphics-Klasse in der Java-Klassenbibliothek verwenden, die sich im Paket java.awt befindet. Um in unserer eigenen Java-Programmdatei die Graphics-Klasse zu verwenden, müssen wir die import java.awt.Graphics-Anweisung verwenden, um die Graphics-Klasse zu importieren.

Die Graphics-Klasse bietet grundlegende geometrische Zeichenmethoden, darunter hauptsächlich: Zeichnen von Liniensegmenten, Zeichnen von Rechtecken, Zeichnen von Kreisen, Zeichnen farbiger Grafiken, Zeichnen von Ellipsen, Zeichnen von Bögen, Zeichnen von Polygonen usw. Dieses Projekt verwendet nur die Funktion zum Zeichnen gerader Linien. Für andere grafische Zeichnungen klicken Sie bitte, um die Java-API anzuzeigen.

Die drawLine()-Methode der Graphics-Klasse: drawLine(int x1,int y1,int x2,int y2)

Die Funktion dieser Methode ist: Verwenden Sie im Koordinatensystem dieses Grafikkontexts den Strom Farbe am Punkt (Zeichne eine Linie zwischen x1,y1) und (x2,y2).

Hier gibt es mehrere Konzepte, die verstanden werden müssen:

1) Grafikkontext: Für den Laien ist es die Zeichenumgebung. Jede Fensterkomponente (z. B. das Hauptfenster, die Schaltfläche usw.) verfügt über ein eigenes Grafikkontextobjekt. Wir verwenden dieses Objekt, um Bilder auf der Komponente zu zeichnen. Dieses Objekt ist das Grafikobjekt.

2) So erhalten Sie den Grafikkontext: Auf der Komponente, die wir zeichnen möchten, rufen Sie einfach die Methode getGraphics() dieser Komponente auf, um das Grafikkontextobjekt der Komponente abzurufen, und verwenden Sie dieses Objekt dann zum Zeichnen .

3), Java-Koordinatensystem:

Der Java-Koordinatenursprung (0, 0) befindet sich in der oberen linken Ecke des Bildschirms. Die Koordinatenmessung erfolgt in Pixel und die horizontale Richtung rechts ist die positive Richtung der X-Achse, vertikal ist die positive Richtung der Y-Achse. Der Wert jedes Koordinatenpunkts repräsentiert die Position eines Pixels auf dem Bildschirm sind Ganzzahlen, wie in der folgenden Abbildung dargestellt:

So zeichnen Sie einfache Grafiken in Java

4). Jeder Grafikkontext hat seine eigene aktuelle Farbe. Die Farbe kann über die getColor()-Methode des Graphics-Objekts abgerufen werden, und die Farbe kann über die setColor()-Methode festgelegt werden.

Das Beispiel sieht wie folgt aus:

Schritt 1: Fügen Sie Mitgliedsvariablen zur DrawSee-Klasse hinzu, um die Eigenschaften des Spielbereichs zu beschreiben.

Für die DrawSee-Klasse besteht die Hauptfunktion dieser Klasse darin, mit dem Benutzer zu interagieren, dh den Spielbereich anzuzeigen, Zahlen anzuzeigen, auf den Mausklick des Benutzers zu reagieren und die Ergebnisse des Mausklicks des Benutzers anzuzeigen , usw. Wir betrachten nun das Problem, einen Spielbereich mit 10 Zeilen und 10 Spalten zu zeichnen. Fügen Sie zunächst die folgenden vier Mitgliedsvariablen zur DrawSee-Klasse hinzu:

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方块的边长
    ...
}

Schritt 2: Fügen Sie eine Methode zum Zeichnen des Spielbereichs hinzu (d. h. zeichnen Sie ein rotes Gitter mit 10 Zeilen und 10 Spalten)

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();
        }
    }

Zusammenfassung:

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();
        }
    }
}

Das Ergebnis ist wie im Bild gezeigt:

So zeichnen Sie einfache Grafiken in Java

Empfohlenes Tutorial: Einführung in die Java-Entwicklung

Das obige ist der detaillierte Inhalt vonSo zeichnen Sie einfache Grafiken in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn