Java/Excercise

swing ch04 MainTest2

낭구리 2021. 9. 3. 17:37
package ch04;

import java.awt.Graphics;
import java.awt.Paint;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;

class MyFrame2 extends JFrame {
	BufferedImage backgroundimage;
	BufferedImage imageIcon;
	MyImagePanel imagePanel;

	public MyFrame2() {
		initDate();
		setInitLayout();
	}

	private void initDate() {

		setTitle("이미지 백그라운드 연습");
		setSize(500, 500);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		// 이미지를 가지고와서 사용하기
		try {
			backgroundimage = ImageIO.read(new File("background3.jpg"));
			imageIcon = ImageIO.read(new File("imag2.jpg"));
		} catch (IOException e) {
			System.out.println("파일이없습니다.");
			e.printStackTrace();
		} // ImageIO는 static 메서드
			// file을 read로 읽어서 background2.jpg를 메모리에 올려서backgroundimage 에 저장해둔상태

		imagePanel = new MyImagePanel();
	}// initData

	private void setInitLayout() {
		setVisible(true);
		setResizable(false); //크기를 사용자맘대로 줄이거나 늘리지못하게
		add(imagePanel);
	}

	// 내부클래스생성
	private class MyImagePanel extends JPanel {
		@Override
		public void paintComponent(Graphics g) {
			super.paintComponent(g); 
//			paintComponent 호출이된 이유는 메서드가 생성된시점에 메서드가 자동으로호출되었다.
			g.drawImage(backgroundimage, 0, 0, 500, 500, null);
			g.drawImage(imageIcon, 180, 180, 200, 200, null); // 틀 200 200 그림 100 100

		}
	}// MyImagePanel(내부클래스)

}

public class MainTest2 {

	public static void main(String[] args) {

		new MyFrame2();
	}

}

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

swing ch05 EventListenerEx1  (0) 2021.09.06
generic ch05 Point  (0) 2021.09.06
swing ch04 MainTest  (0) 2021.09.03
swing ch03 MyFrame2  (0) 2021.09.03
swing ch03 Jpanel  (0) 2021.09.03