Graphics 클래스란?
Java에서 화면에 그리기 작업은 Graphics 객체를 통해 이루어지며, 이 객체는 java.awt.Graphics 클래스의 인스턴스입니다.
- 각 Graphics 객체는 자체적인 좌표계를 가지고 있으며, 문자열(String), 선(line), 사각형(rectangle), 원(circle), 다각형(polygon) 등을 그리는 다양한 메서드를 제공합니다.
- paint(Graphics g) 메서드를 통해 Graphics 객체에 접근할 수 있습니다.
- 둥근 사각형을 그리려면 drawRoundRect() 메서드를 사용하면 됩니다. 이 메서드는 x좌표, y좌표, 너비(width), 높이(height), 호 너비(arcWidth), 호 높이(arcHeight) 총 6개의 매개변수를 받습니다.
여기서 arcWidth와 arcHeight 값이 모서리의 곡률을 결정합니다. 두 값이 클수록 모서리가 더 둥글게 표현되며, 값을 조절하여 원하는 형태의 둥근 사각형을 만들 수 있습니다.
예제 코드
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class RoundedRectangleTest extends JFrame {
public RoundedRectangleTest() {
setTitle("RoundedRectangle Test");
setSize(350, 275);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
public void paint(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
g2d.drawRoundRect(10, 50, 150, 150, 50, 30); // 둥근 사각형 그리기
}
public static void main(String []args) {
new RoundedRectangleTest();
}
}
코드 설명
- drawRoundRect(10, 50, 150, 150, 50, 30): x=10, y=50 위치에서 시작하여 너비 150, 높이 150 크기의 사각형을 그리며, 모서리 곡률은 arcWidth=50, arcHeight=30으로 설정됩니다.
- paint() 메서드는 컴포넌트가 화면에 그려질 때 자동으로 호출되므로, 별도의 호출 없이도 그래픽이 렌더링됩니다.
- Graphics2D로 캐스팅하면 안티앨리어싱, 그라데이션 등 더 정교한 2D 그래픽 기능을 활용할 수 있습니다.
실행 결과
