> Java > Java베이스 > 본문

자바에서 간단한 그래픽을 그리는 방법

王林
풀어 주다: 2019-11-22 16:18:20
원래의
6934명이 탐색했습니다.

자바에서 간단한 그래픽을 그리는 방법

Java로 기본 그래픽을 그리려면 java.awt 패키지에 있는 Java 클래스 라이브러리의 Graphics 클래스를 사용할 수 있습니다. 자체 Java 프로그램 파일에서 Graphics 클래스를 사용하려면 import java.awt.Graphics 문을 사용하여 Graphics 클래스를 가져와야 합니다. import java.awt.Graphics语句将Graphics类导入进来。

Graphics类提供基本的几何图形绘制方法,主要有:画线段、画矩形、画圆、画带颜色的图形、画椭圆、画圆弧、画多边形等。本项目仅用到画直线的功能,其它图形绘制请自行点击查阅Java API。

Graphics类的drawLine()方法:drawLine(int x1,int y1,int x2,int y2)

Graphics 클래스는 주로 선분 그리기, 직사각형 그리기, 원 그리기, 컬러 그래픽 그리기, 타원 그리기, 호 그리기, 다각형 그리기 등을 포함한 기본적인 기하학적 그리기 방법을 제공합니다. 이 프로젝트는 직선 그리기 기능만 사용합니다. 다른 그래픽 도면을 보려면 클릭하여 Java API를 확인하세요.

Graphics 클래스의 drawLine() 메서드: drawLine(int x1,int y1,int x2,int y2)

# 🎜🎜#이 방법의 기능은 이 그래픽 컨텍스트의 좌표계에서 현재 색상을 사용하여 점 (x1,y1)과 (x2,y2) 사이에 선을 그리는 것입니다.

여기서 몇 가지 개념을 이해해야 합니다:

1), 그래픽 컨텍스트: 일반인의 용어로는 드로잉 환경입니다. 각 창 구성 요소(예: 기본 창, 버튼 등)에는 자체 그래픽 컨텍스트 개체가 있으며 이 개체를 사용하여 구성 요소에 그림을 그립니다. 이 개체는 그래픽 개체입니다.

2) 그래픽 컨텍스트를 얻는 방법: 그리려는 컴포넌트에서 해당 컴포넌트의 getGraphics() 메서드를 호출하여 해당 컴포넌트의 그래픽 컨텍스트 객체를 얻은 다음 이 객체를 사용합니다. 그리다.

3), Java 좌표계: 자바에서 간단한 그래픽을 그리는 방법

Java의 좌표 원점(0, 0)은 화면 왼쪽 상단에 있습니다. 좌표 측정 단위는 가로 픽셀입니다. X축의 양의 방향은 Y축의 양의 방향입니다. 각 좌표점의 값은 화면상의 픽셀 위치를 나타냅니다. 모든 좌표점의 값은 정수입니다. 다음 그림에 표시됩니다: #

4), 현재 색상: 그래픽 컨텍스트의 현재 색상을 나타냅니다. 각 그래픽 컨텍스트에는 고유한 현재 색상이 있습니다. 색상은 Graphics 객체의 getColor() 메소드를 통해 얻을 수 있고, 색상은 setColor() 메소드를 통해 설정할 수 있습니다.

예제는 다음과 같습니다.

1단계: DrawSee 클래스에 멤버 변수를 추가하여 게임 영역의 특성을 설명합니다.

DrawSee 클래스의 경우 이 클래스의 주요 기능은 사용자와 상호 작용하는 것입니다. 즉, 게임 영역 표시, 숫자 표시, 사용자의 마우스 클릭에 응답, 사용자의 결과 표시 마우스 클릭 등 이제 우리는 10개의 행과 10개의 열로 구성된 게임 영역을 그리는 문제를 고려합니다. 먼저 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();
        }
    }
}
로그인 후 복사

결과는 다음과 같습니다.

자바에서 간단한 그래픽을 그리는 방법

추천 튜토리얼: #🎜🎜 #javaDevelopmentIntroduction

#🎜🎜#

위 내용은 자바에서 간단한 그래픽을 그리는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿