Ex) 1,2,3 단계에서 만든 것을 활용해서 태양계 애니메이션을 만든다.
Sol)
<hide/>
public class Animation extends JFrame {
static int width = 2000;
static int height = 1000;
static JPanel page1 = new JPanel() {
Image background = new ImageIcon(Animation.class.getResource("\\img\\sun.png")).getImage();
public void paint(Graphics g) {
g.drawImage(background, width / 2 - 100, height / 2 - 100,
null);// background를 그려줌, x값은 x값 그대로, y값은 맨 위 기준으로 높이
}
};
static JPanel page2 = new JPanel() {
Image background = new ImageIcon(
Animation.class.getResource("\\img\\earth2.jpg")).getImage();
public void paint(Graphics g) {
g.drawImage(background, width * 3 / 4, height / 2 - 100, null);// 사진을 올릴 중앙점?
}
};
static JPanel page3 = new JPanel() {
Image background = new ImageIcon(
Animation.class.getResource("\\img\\moon2.png")).getImage();
public void paint(Graphics g) {
g.drawImage(background, width * 9 / 10, height / 2 - 100, null);// 사진을 올릴 중앙점?
}
};
void addImg(JPanel page) {
page.setLayout(null);
page.setBounds(0, 0, width, height);
add(page);
}
public Animation() {
homeframe();
}
public void homeframe() {
setTitle("태양계 애니메이션");
setSize(width, height); //전체 창의 크기
setResizable(true); // 창의 크기를 변경 가능
setLocationRelativeTo(null); // 창이 가운데 나오게
setLayout(null);
setVisible(true); //창이 보이게
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 창 닫기 누르면 JFrame이 정상적으로 종료
addImg(page1);
addImg(page2);
addImg(page3);
}
public static void main(String[] args) {
new Animation();
}
}
- 창 사이즈를 조절하면 비율에 맞도록 사진 사이즈도 조절되도록 하면 좋을 것 같다.
코드스쿼드 과제 회고
- 4단계에 애니메이션 과제가 있는지 과제 제출일에 처음 알았다.
- 알았다고 해도 해본 적이 없어서 아마 며칠 걸리지 않았을까 싶다.
- 자바 스윙에 대해 들어본 적은 있지만 처음 본다.
'Boot Camp > [코드스쿼드] Java 백엔드 테스트' 카테고리의 다른 글
[3단계] 콘솔 태양계 출력 프로그램 완성 (0) | 2022.12.08 |
---|---|
[2단계] 지구 태양 달의 위치 표시하기 (0) | 2022.12.08 |
[1단계] 콘솔로 원 출력하기 (0) | 2022.12.08 |