Boot Camp/[코드스쿼드] Java 백엔드 테스트

[4단계] 태양계 애니메이션 - 미완성

계란💕 2022. 12. 8. 21:08

  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단계에 애니메이션 과제가 있는지 과제 제출일에 처음 알았다.
  • 알았다고 해도 해본 적이 없어서 아마 며칠 걸리지 않았을까 싶다.
  • 자바 스윙에 대해 들어본 적은 있지만 처음 본다.