Christmas Pikachu Paint(좌표값을 이용한 그림 그리는 방법)
개발일지/자바

Paint(좌표값을 이용한 그림 그리는 방법)

ZI_CO 2022. 9. 14.

 

package eventPractice;

import java.awt.Graphics;

import javax.swing.JFrame;
import javax.swing.JPanel;

// 외부 클래스 : 클래스안에 또다른 클래스를 포함하고 있으면 외부 클래스라고 한다.
class OutClass extends JFrame {
	
	InnerClass innerClass; // 내부클래스 멤버변수 선언

	// 이번에는 일반클래스가 아닌 외부 클래스에서 코드가 진행된다.

	public OutClass() {
		initData();
		setInitLayout();
		
	}

	private void initData() {
		setTitle("paint 사용법"); // 프레임 타이틀
		setSize(800, 800); // 프레임 사이즈	
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 프레임이 종료시 프로그램 종료
		innerClass = new InnerClass(); // 내부클래스를 외부클래스에서 멤버 변수로 선언한걸 new 해서 배치해줄 준비를 해준다.
	}

	private void setInitLayout() {
		setVisible(true); // 프레임을 화면에 보여줌
		add(innerClass); // 그림을 그려놓은 클래스인 내부클래스를 배치를 해준다. 
	}

	// 여기 클래스는 지금 외부클래스 안에있는 위치이므로 내부클래스라고 한다.
	// 내부 클래스에는 인스턴스 내부클래스와 정적 내부클래스 2가지가 있다.
	// 접근제어 지시자를 설정 할 수 가있다.

	// static가 붙게되면 정적 내부클래스라고 한다.
	public static class InnerClass extends JPanel {

		// 그림을 그려주는 기능인 paint를 오버라이드를 해준다.
		@Override
		public void paint(Graphics g) {
			super.paint(g);
			g.drawString("글자, 문자열을 그릴수가 있다.", 50, 50); // drawString : x축으로 50 y축으로 50 위치에 문자열을 출력한다.
			g.drawRect(300, 300, 150, 150); // drawRect : x축으로 300 y축으로 300 기준에서 가로 세로 150크기의 사각형을 그린다.
			g.drawLine(355, 330, 355, 380); // drawLine : x축으로 355 y축으로 330의 위치와 drawLine : x축으로 355 y축으로 330의 위치를 서로 잇는
																// 선을 그린다.
		}

	}

}


// 프로그램 실행 메인
public class PaintTest {

	public static void main(String[] args) {
		new OutClass();
	}
}

 

 

 

댓글