- [Java] 61. Swing: 이미지 겹치기2024년 04월 29일
- Song hyun
- 작성자
- 2024.04.29.:29
728x90반응형[Java] 61. Swing: 이미지 겹치기
1. JLabel 이란?
JLabel은 짧은 글, 혹은 하나의 이미지를 출력할 때 사용되는 클래스이다.
입력 이벤트(키보드 리스너, 이벤트 리스너 등)에 반응하지 않는다는 특징이 있다.
JLabel을 사용하면, 아래와 같이 몇 개의 사진을 겹쳐 출력할 수도 있다.
아래의 코드를 참고하려 사진을 겹쳐 출력해보자.
2. Swing-JLabel을 사용해 이미지 겹쳐 출력하기
MyFrame 클래스 살펴보기
(1) 멤버 변수
-JLabel의 형식을 가지는 backgroundMap, player라는 멤버변수를 선언한다.
이는 각각 배경/배경 위에 겹쳐 출력할 사진을 의미한다.
(2) 사용자 정의 생성자 MyFrame()
-메서드 initData(), setInitData()를 객체 생성과 동시에 실행한다.
(3) initData() 메서드
setTitle: 창의 제목을 입력한다.
setSize: 창의 크기를 입력한다.
setDefaultCloseOperation: 창의 x 버튼을 눌렀을 때의 처리를 선언한다.
icon: Icon 형의 객체 icon에 하위 클래스인 ImageIcon을 업캐스팅했다.
여기에서는 배경이 될 이미지를 삽입한다.
backgroundMap=new JLabel(icon): 멤버 변수인 backgroundMap에 icon을 출력하는 JLabel을 초기화한다.
background.setSize: 해당 객체의 사이즈 조절
background.setLocation: 헤당 객체의 좌표 위치 설정
(4) setInitData() 메서드
setLayout(null) <-null값을 입력할 시, 가장 기본인 FlowLayout으로 설정된다.
add(background): background 객체를 붙인다.
backgroundMap.add(player): backgroundMap 객체에 player 객체를 붙인다.
setVisible(true): 창이 보이게끔 설정한다.package ch04; import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; public class MyFrame extends JFrame { private JLabel backgroundMap; private JLabel player; public MyFrame() { initData(); setInitData(); } private void initData() { setTitle("JLabel을 활용한 이미지 사용 연습"); setSize(500,500); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Icon icon = new ImageIcon("images/background1.jpg"); // 업 캐스팅 상태 backgroundMap = new JLabel(icon); backgroundMap.setSize(500,500); backgroundMap.setLocation(0,0); player=new JLabel(new ImageIcon("image1.png")); player.setSize(100,100); player.setLocation(300,100); } private void setInitData() { // 좌표값으로 세팅하기 위해서는 배치 관리자를 null 값으로 만들어 줘야 한다. setLayout(null); add(backgroundMap); backgroundMap.add(player); setVisible(true); } }
728x90반응형'Java > 자바 Swing' 카테고리의 다른 글
[Java] 63. Swing: 리스너 응용-리스너를 구현하는 두 가지 방법 (0) 2024.04.29 [Java] 62. Swing: 이벤트 리스너 (0) 2024.04.29 [Java] 60. Swing: 이미지 출력하기 (0) 2024.04.29 [Java] 59. 사용자 정의 예외 클래스 (0) 2024.04.29 [Java] 56. Swing 응용 예제: 집 그리기 (0) 2024.04.26 다음글이전글이전 글이 없습니다.댓글