package ch03;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
import ch03.MyFrame1.MyDrawPanel;
public class MyFrame2 extends JFrame {
// 내부클래스를 활용해서
// JPanel 를 상속 받고 paint 메서드로 집 그림을 그려주세요
MyDrawPanel drawPanel;
class MyDrawPanel extends JPanel {
@Override
public void paint(Graphics g) {
super.paint(g);
g.drawRect(350, 350, 300, 300);
g.drawRect(500, 400, 50, 50);
g.drawRect(550, 450, 50, 50);
g.drawRect(550, 400, 50, 50);
g.drawRect(500, 450, 50, 50);
g.drawLine(350, 350, 500, 200);
g.drawLine(650, 350, 500, 200);
g.drawString("★", 100, 50);
g.drawString("★", 120, 70);
g.drawString("★", 200, 80);
g.drawString("★", 100, 100);
g.drawString("★", 120, 120);
g.drawString("★", 200, 130);
g.drawString("★", 220, 90);
g.drawString("★", 270, 80);
g.drawString("★", 300, 70);
g.drawString("★", 330, 144);
g.drawString("★", 450, 92);
g.drawString("★", 510, 132);
g.drawString("★", 450, 62);
g.drawString("★", 520, 71);
g.drawString("★", 350, 92);
g.drawString("★", 410, 132);
g.drawString("★", 350, 62);
g.drawString("☆", 420, 71);
g.drawOval(800, 30, 150, 150);
g.drawString("달", 870, 80);
g.drawLine(750, 80, 550, 150);
g.drawLine(750, 100, 580, 180);
g.drawLine(750, 120, 610, 210);
g.drawLine(780, 140, 650, 250);
g.drawString("☆", 550, 150);
g.drawString("☆", 580, 180);
g.drawString("☆", 610, 210);
g.drawString("☆", 650, 250);
}
}
public MyFrame2() {
initDate();
setInitLayout();
}
private void initDate() {
setTitle("외부클래스를 이용하여 집 모양 만들기");
setSize(1000, 1000);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
drawPanel = new MyDrawPanel();
}
private void setInitLayout() {
add(drawPanel);
setVisible(true);
}
}
package ch03;
public class MainTest2 {
public static void main(String[] args) {
new MyFrame2();
}
}
생성한 클래스 파일들을 출력해주는 메인 코드는 따로 만들어주는게 좋다!
'자바' 카테고리의 다른 글
예외 처리 (0) | 2023.02.21 |
---|---|
GUI를 이용한 이미지 출력 연습(Swing) (1) | 2023.02.21 |
외부 클래스 내부클래스를 이용 GUI (0) | 2023.02.21 |
Swing 을 이용한 GUI (0) | 2023.02.21 |
GUI 프로그램 (0) | 2023.02.20 |