// 프로그램에서 필요한 패키지를 포함 시킨다. import javax.swing.*;
import java.awt.*; // JPanel클래스를 상속받아 ColorExamPanel클래스를 구현한다. class ColorExamPanel extends JPanel{ // paint메소드... 컴포넌트의 리 페인팅이 요구 될시 실행 되는 메소드를 오버라이딩 한다. protected void paintComponent(Graphics g) { // 부모 클래스에 그래픽 객체를 넘겨 부모 클래스에 정의된 로직을 먼저 실행 시킨다.
super.paintComponent(g);
// 컬러객체를 생성한다. (R:255, G:100, B:100) Color c1 = new Color(255, 100, 100); // 컬러객체를 생성한다. (R:100, G:255, B:100)
Color c2 = new Color(100, 255, 100); // 컬러객체를 생성한다. (R:100, G:100, B:255)
Color c3 = new Color(100, 100, 255);
// 그래픽 객체를 c1의 색으로 설정 한다. g.setColor(c1); // 시작점 좌표(0,0)에서 끝점 좌표(100, 100) 까지 선을 그린다.
g.drawLine(0, 0, 100, 100); // 그래픽 객체를 c2의 색으로 설정 한다.
g.setColor(c2); // 시작점 좌표(40,25)에서 끝점 좌표(250, 180) 까지 선을 그린다.
g.drawLine(40, 25, 250, 180); // 그래픽 객체를 c2의 색으로 설정 한다.
g.setColor(c3); // 시작점 좌표(20,150)에서 끝점 좌표(400, 40) 까지 선을 그린다.
g.drawLine(20, 150, 400, 40); // 그래픽 객체를 빨강색으로 설정 한다.
g.setColor(Color.red); // 좌표(10,10), 길이 50, 높이 50의 원을 그린다. (테두리가 빨강색이다.)
g.drawOval(10, 10, 50, 50); // 좌표(70,90), 길이 140, 높이 100의 빨강색으로 내부가 채워진 원을 그린다.
g.fillOval(70, 90, 140, 100);
// 그래픽 객체를 파란색으로 설정 한다. g.setColor(Color.blue);
// 좌표(190,10), 길이 90, 높이 30의 원을 그린다. (테두리가 파란색이다.) g.drawOval(190, 10, 90, 30); // 좌표(10,10), 길이 60, 높이 50의 사각형을 그린다.(테두리가 파란색이다.)
g.drawRect(10, 10, 60, 50); // 그래픽 객체를 cyan색으로 설정 한다.
g.setColor(Color.cyan); // 좌표(100,10), 길이 60, 높이 50의 cyan색으로 내부가 채워진 사각형을 그린다.
g.fillRect(100, 10, 60, 50); // 각 정보에 맞도록 둥근 사격형을 그린다.
g.drawRoundRect(190, 10, 60, 50, 15, 15); }
} // JFrame클래스를 상속받아 ColorExam클래스를 구현한다.
public class ColorExam extends JFrame{ // 생성자 public ColorExam() { // 프레임의 타이틀을 설정
setTitle("Color Test"); // 컨테이너를 받아와 위에서 정의한 패널을 설정한다.
Container ct = getContentPane();
ct.add(new ColorExamPanel()); }
public static void main(String[] args) {
ColorExam ce = new ColorExam();
ce.setSize(400,250);
ce.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ce.setVisible(true);
} }
by Anna 안나 2008. 3. 2. 19:37