Swing

이미지 올려보기

whs5758 2025. 4. 28. 17:55
package _swing;

import javax.swing.*;
import java.awt.*;

public class MyImageFrame extends JFrame {

    private MyImagePanel myImagePanel;

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

    private void initData() {
        setTitle("이미지 넣어 보는 연습");
        setSize(600, 600);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);

        myImagePanel = new MyImagePanel();
    }

    private void setInitLayout() {
        add(myImagePanel);
    }

    // 정적 내부 클래스
    static class MyImagePanel extends JPanel {
        // 내부 클래스의 멤버 변수 선언
        private Image image1;
        private Image image2;
        private Image image3;

        // 내부 클래스 생성자
        public MyImagePanel() {
            // ImageIcon 데이터 타입을 -> .getImage() 메서드를 호출해서 형 변환 --> Image
            //  ImageIcon(파일명) <-- 기준은 루트폴더 java_useful 아래를 확인한다.
            image1 = new ImageIcon("vespa.png").getImage();
            image2 = new ImageIcon("ninja.png").getImage();
            image3 = new ImageIcon("harley.png").getImage();
        }

        // 자동으로 호출 되게끔 순서가 정해져 있다.
        @Override
        public void paint(Graphics g) {
            super.paint(g);
            // 이미지를 올려보자
            g.drawImage(image1, 100, 100, 300, 300, null);
            g.drawImage(image2, 400, 100, 300, 300, null);
            g.drawImage(image3, 700, 100, 400, 300, null);
        }
    } // end of static inner class

    // 코드 테스트
    public static void main(String[] args) {
        new MyImageFrame();
    }
}

'Swing' 카테고리의 다른 글

swing 이벤트 리스너 (ActionListener)  (0) 2025.04.29
이미지 겹쳐보기  (0) 2025.04.29
패널 사용해보기  (0) 2025.04.28
좌표값으로 컴포넌트 배치해보기  (0) 2025.04.28
기본 컴포넌트 소개  (0) 2025.04.28