Java/Java Swing

Swing - 3 (이미지 올리기)

도준영 2024. 5. 31. 17:47

ImageIcon 을 활용한 이미지를 사용하는 방법

 

 

 

package ch03;

import java.awt.Graphics;
import java.awt.Image;

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 image;
		public MyImagePanel() {
			// ImageIcon 데이터 타입 -> getImage() 메서드를 호출하면 
			// image 데이터 타입을 만들어 낼 수 있다. 
			image = new ImageIcon("image1.png").getImage();
		}
		
		@Override
		public void paint(Graphics g) {
			super.paint(g);
			g.drawImage(image, 100, 100, 100, 100, null);
		}	
	}
	
}

 

 

 

 

package ch03;

import java.awt.Graphics;
import java.awt.Image;

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("image2.png").getImage();
		}
		@Override
		public void paint(Graphics g) {
			super.paint(g);
			g.drawImage(image1, 100, 100, 100, 100, null);
			g.drawImage(image2, 200, 200, 150, 120, null);
		}
		
	}
	
	
}

 

 

'Java > Java Swing' 카테고리의 다른 글

Swing - 6 (Key Listener)  (0) 2024.07.15
Swing - 5 (이벤트 리스너)  (0) 2024.07.03
Swing - 4 (이미지 겹치는 방법)  (0) 2024.07.03
Swing - 2  (0) 2024.05.31
Swing - 1  (0) 2024.05.31