즐거운프로그래밍

[자바] Canvas의 이해와 활용(그래픽 처리 작업)

수수께끼 고양이 2023. 10. 24. 16:06
728x90
반응형

 

Canvas 클래스는 그래픽 처리를 할 수 있는 특정한 모양을 가지지 않는 컴포넌트로 직접 그래픽 작업을 처리할 경우에 주로 사용하는 컴포넌트이다.

 

import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class Main {
    public static void main(String[] args) {
        Frame frm = new Frame("Canvas Exam");
        frm.setBounds(100,100,200,200);

        Canvas canvas = new CCanvas();
        frm.add(canvas, "Center");

        frm.setVisible(true);

        frm.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                super.windowClosing(e);
                System.exit(0);
            }
        });
    }
}

class CCanvas extends Canvas {
    // Canvas 클래스의 paint() 메서드 오버라이딩
    public void paint(Graphics g) {

        // 문자열 그리기
        g.drawString("문자열", 10, 20);

        // 사각형 그리기
        g.drawRect(50, 10, 30, 20);

        // 사각형 채우기
        g.fillRect(100, 10, 30, 20);

        // 각 꼭지점의 X좌표를 int형 배열로 설정
        int xPos[] = {150, 165, 180, 170, 160};

        // 각 꼭지점의 Y좌표를 int 형 배열로 설정
        int yPos[] = {20, 10, 20, 30, 30};

        // 다각형 그리기
        g.drawPolygon(xPos, yPos, 5);

        // 둥근 사각형 그리기
        g.drawRoundRect(10, 50, 40, 40, 10, 10);

        // 타원 그리기
        g.drawOval(60, 50, 50, 20);

        // 호 그리기(부채꼴 모양)
        g.fillArc(100, 50, 40, 40, 45, -75);

        // 선 그리기
        g.drawLine(10, 110, 170, 130);

     }
}

 

 

 

728x90
반응형