본문으로 바로가기

Swing - (이미지 올리기)

category Java 2024. 4. 29. 18:45
package ch03;

import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.ImageObserver;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;

/**
 * 중첩 클래스 --> 외부,내부 클래스로
 *                 내부 클래스로 --> 인스턴스 클래스 , static 클래스  
 */
public class MyImageFrame extends JFrame {

	// 내부 클래스로 정의한 데이터 타입 이다. 
	private MyImagePanel myImagePanel;
	
	
	public MyImageFrame() {
		initData();
		setInitLayout();
	}
	
	private void initData() {
		setTitle("이미지 활용 연습");
		setSize(600, 600);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		myImagePanel = new MyImagePanel();
	}
	
	private void setInitLayout() {
		add(myImagePanel);
		setVisible(true);
	}
	
	
	// 내부 클래스 --> static 키워드 활용 
	// 정적(static) 내부 클래스라고 한다. 
	static class MyImagePanel extends JPanel {
		private Image image1;
		private Image image2;
		
		public MyImagePanel() {
			// ImageIcon 데이터 타입 -> getImage() 메서드를 호출하면 
			// image 데이터 타입을 만들어 낼 수 있다. 
			image1 = new ImageIcon("image1.png").getImage();
			image2 = new ImageIcon("temp1.jpg").getImage();
		}
		
		@Override
		public void paint(Graphics g) {
			super.paint(g);
//			Image img, int x, int y,int width, int height,
//            ImageObserver observer
			g.drawImage(image1, 100, 100, 100, 100, null);
			
			g.drawImage(image2, 200, 200, 80, 80, null);

		}	
		
		
	}
	
}

'Java' 카테고리의 다른 글

Wrapper 클래스  (0) 2024.06.12
Swing - (이미지 겹치는 방법)  (0) 2024.04.29
Swing - Component,Panel  (0) 2024.04.29
Swing - BorderLayout  (0) 2024.04.29
Swing - FlowLayout  (0) 2024.04.29