Java/Swing

Swing - 3 (이미지 올리기)

CNOW 2024. 4. 29. 14:01

다운로드 용

이미지 위치 확인

일단 프로젝트 최상위 폴더에 넣어둠

 

기본코드 확인

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);
		}	
	}
	
}

 

 

 

이미지 업로드 – remove.bg

이미지 선택 & 무료로 – 한 번의 클릭도 없이 – 5초 안에 – 100% 자동으로 – 배경 삭제.

www.remove.bg

 

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

 

실행

package ch03;

public class MyImageMainTest {

	public static void main(String[] args) {
		new MyImageFrame();
	}

}