// education

그래픽과 칠하기 (Graphics, Color, Font 및 이미지)

컴포넌트 표면에 선, 원, 사각형, 텍스트, 이미지를 커스텀으로 직접 그려 넣는 자바 2D 그래픽(Graphics) 처리 기법을 다룹니다.


1. 그래픽 처리 용어 사전 (Glossary)


2. 커스텀 그래픽 패널 구현 예제

import javax.swing.*;
import java.awt.*;

class CustomPaintPanel extends JPanel {
    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g); // 기존 배경 칠하기

        // 1. 빨간색 직선 그리기
        g.setColor(Color.RED);
        g.drawLine(20, 20, 200, 20);

        // 2. 파란색 채워진 사각형 그리기
        g.setColor(Color.BLUE);
        g.fillRect(20, 50, 100, 60);

        // 3. 초록색 원(타원) 그리기
        g.setColor(Color.GREEN);
        g.fillOval(150, 50, 80, 80);

        // 4. 커스텀 폰트 텍스트 출력
        g.setColor(Color.BLACK);
        g.setFont(new Font("Pretendard", Font.BOLD, 18));
        g.drawString("DAVHAVE Java 2D Graphics", 20, 180);
    }
}

public class GraphicFrame extends JFrame {
    public GraphicFrame() {
        setTitle("자바 2D 그래픽 실습");
        setSize(320, 250);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        add(new CustomPaintPanel());
        setVisible(true);
    }
    public static void main(String[] args) { new GraphicFrame(); }
}

3. 자주 묻는 질문 (Q&A)

Q. paintComponent() 메소드를 개발자가 코드에서 직접 panel.paintComponent(g) 로 부르면 안 되나요? A. 안 됩니다! 그래픽 렌더링 스레드의 제어권은 JVM에 있으므로, 화면을 다시 그리려면 개발자는 반드시 panel.repaint() 메소드를 호출해야 안전하게 갱신됩니다.

← 이전자바 멀티스레딩(Multithreading)과 동시성 제어 다음 →자바 소켓(Socket) 네트워크 프로그래밍