Java/Swing
Swing - 이미지 올리기, 겹치기
DDG9
2024. 4. 29. 16:20
ImageIcon 을 이용
package ch03;
import java.awt.Graphics;
import java.awt.Image;
import java.util.Scanner;
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, 50, 50, 150, 150, null);
g.drawImage(image2, 200, 50, 150, 150, null);
g.drawImage(image3, 350, 50, 150, 150, null);
}
}
}
package ch03;
public class MyImageFrameMainTest {
public static void main(String[] args) {
new MyImageFrame();
}
}
이미지 겹치기
package ch04;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
/**
* JLabel 이용해서 이미지를 다룰 수 있다.
* JLabel.add(); 메서드를 통해서 이미지를 겹칠 수 있다.
* 좌표 기준으로 이미지를 셋팅을 하려면
* 배치관리자를 null 값으로 셋팅 해야한다.
*/
public class MyFrame extends JFrame {
private JLabel backgroundMap;
private JLabel player;
public MyFrame() {
initData();
setInitLayout();
}
private void initData() {
setTitle("JLabel을 활용한 이미지 사용 연습");
setSize(500, 500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Icon icon = new ImageIcon("images/background1.jpg"); // ImageIcon이 Icon을 Implements 했음, 업 캐스팅 상태
backgroundMap = new JLabel(icon);
backgroundMap.setSize(500, 500);
backgroundMap.setLocation(0, 0);
player = new JLabel(new ImageIcon("images/image4.png"));
player.setSize(100, 100);
player.setLocation(300, 200);
}
private void setInitLayout() {
// 좌표값으로 셋팅하기 위해서는 배치관리자를 null 값으로 만들어 주어야 한다.
setLayout(null);
add(backgroundMap);
backgroundMap.add(player);
setVisible(true);
}
}
package ch04;
public class MyFrameMainTest {
public static void main(String[] args) {
new MyFrame();
}
}
※ removebg, 이미지조절 사이트 활용하기