찾다
JavaJava베이스자바에서 간단한 그래픽을 그리는 방법

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

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기