집그리기
import javax.swing.*;
import java.awt.*;
class HouseDrawingComponent extends JComponent {
public void paintComponent(Graphics g) {
// 단계 1: 지붕을 그린다.
int[] xPnts = {100, 50, 150, 100};
int[] yPnts = {30, 180, 180, 30};
int nPnts = xPnts.length;
g.fillPolygon(xPnts, yPnts, nPnts);
// 지붕 위의 기와 모양을 그린다.
g.setColor(Color.WHITE);
g.drawArc(90, 50, 20, 40, 210, 120);
g.drawArc(75, 87, 20, 40, 210, 120);
g.drawArc(105, 87, 20, 40, 210, 120);
g.drawArc(60, 125, 20, 40, 210, 120);
g.drawArc(90, 125, 20, 40, 210, 120);
g.drawArc(120, 125, 20, 40, 210, 120);
// 단계 2: 몸채를 그린다.
g.setColor(Color.BLACK);
g.drawRect(60, 180, 80, 100);
// 반원 모양의 창문을 그린다.
g.setColor(Color.YELLOW);
g.fillArc(80, 195, 40, 85, 0, 180);
// 노란색 창문 주위를 2개의 검은색 선으로 그린다.
g.setColor(Color.BLACK);
g.drawArc(80, 195, 40, 85, 0, 180);
g.drawArc(79, 195, 42, 86, 0, 180);
g.drawLine(79, 238, 120, 238);
g.drawLine(79, 239, 120, 239);
// 사각형 문을 그려준다
g.setColor(Color.gray);
g.fillRect(85, 255, 30, 25);
// 문 테두리를 선으로 그린다
g.setColor(Color.BLACK);
g.drawLine(85, 255, 115, 255);
g.drawLine(85, 255, 85, 280);
g.drawLine(115, 255, 115, 280);
// 문 가운데 선을 검은색으로 그린다
g.drawLine(100, 255, 100, 280);
// 문 손잡이를 그린다
g.fillOval(96,263,8,8);
}
}
public class HouseViewer {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setSize(250, 350);
frame.setTitle("House");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
HouseDrawingComponent component = new HouseDrawingComponent();
frame.add(component);
frame.setVisible(true);
}
}
8.5 smile
import javax.swing.*;
import java.awt.*;
class Smile extends JComponent {
public void paintComponent(Graphics g) {
// 지정된 얼굴색으로 얼굴을 그린다
g.setColor(new Color(255,220,130));
g.fillOval(40, 50, 150, 150);
g.setColor(Color.BLACK);
g.drawOval(40, 50, 150, 150);
//눈을 그린다
g.fillOval(80,93,9,9);
g.fillOval(136,93,9,9);
// 코를 그린다
g.drawOval(100,115, 28, 28);
g.setColor(new Color(230,20,80));
g.fillOval(100,115,28,28);
// 입을 그린다
g.setColor(new Color(0,120,60));
g.fillArc(75, 120, 85, 70, 180, 180);
g.setColor(Color.BLACK);
g.drawLine(75, 155, 160, 155);
g.drawArc(75, 120, 85, 70, 180, 180);
}
}
public class Quiz_8_5 {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setSize(250, 350);
frame.setTitle("Smile ~ 8.5");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Smile component = new Smile();
frame.add(component);
frame.setVisible(true);
}
}
중도포기 오륜기
import javax.swing.*;
import java.awt.*;
class Olympic extends JComponent {
public void paintComponent(Graphics g) {
g.setColor(new Color(238,238,238));
g.fillOval(96, 96, 75, 76);
// 링을 만들기 위해서는 색깔원들을 다섯개 만들고 가운데에 흰색 원을 넣어줘야 한다
// 윗층 파란색, 검은색, 빨간색 원 만들기
g.setColor(Color.blue);
g.fillOval(60, 60, 88, 88);
g.setColor(new Color(238,238,238));
g.fillOval(66, 66, 75, 76);
g.setColor(Color.black);
g.fillOval(150,60,88,88);
g.setColor(new Color(238,238,238));
g.fillOval(156, 66, 75, 76);
g.setColor(Color.red);
g.fillOval(240,60,88,88);
g.setColor(new Color(238,238,238));
g.fillOval(246, 66, 75, 76);
// 아랫층 노란색, 초록색 원 만들기
g.setColor(Color.yellow);
g.fillOval(100, 95, 88, 88);
g.setColor(new Color(238,238,238));
g.fillOval(106, 101, 75, 76);
g.setColor(Color.green);
g.fillOval(190, 95, 88, 88);
g.setColor(new Color(238,238,238));
g.fillOval(195, 101, 75, 76);
}
}
public class Olympic_M {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setSize(450, 350);
frame.setTitle("Olympic Flag 8.6.3");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Olympic component = new Olympic();
frame.add(component);
frame.setVisible(true);
}
}
오륜기 두번째 방법
import javax.swing.*;
import java.awt.*;
class Olympic extends JComponent {
public void paintComponent(Graphics g) {
// 링을 만들기 위해서는 색깔원들을 다섯개 만들고 가운데에 흰색 원을 넣어줘야 한다
g.setColor(Color.blue);
g.drawOval(60, 60, 88, 88);
g.setColor(Color.black);
g.drawOval(150,60,88,88);
g.setColor(Color.red);
g.drawOval(240,60,88,88);
// 아랫층 노란색, 초록색 원 만들기
g.setColor(Color.yellow);
g.drawOval(100, 95, 88, 88);
g.setColor(Color.green);
g.drawOval(190, 95, 88, 88);
}
}
public class Olympic_M {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setSize(450, 350);
frame.setTitle("Olympic Flag 8.6.3 planB");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Olympic component = new Olympic();
frame.add(component);
frame.setVisible(true);
}
}
'전공 과목 이수2👨💻 > JAVA(공)' 카테고리의 다른 글
자바12장 Swing - 예제문제/연습문제 (0) | 2021.08.18 |
---|---|
자바 11장,8장(스레드) 예제/연습문제 (0) | 2021.06.14 |
자바 11주차 | 11장 스레드 (0) | 2021.05.19 |
자바10, 11주차 | 9장 예외 (0) | 2021.05.18 |
자바|10주차 인터페이스 (0) | 2021.05.18 |
자바| 1장~6장실습 / 연습문제 (0) | 2021.04.28 |