Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Tags
- 연관관계
- function
- 상수
- 인텔리제이 한글 깨짐 해결법
- JAVA객체지향
- OPP개념
- Java데이터 타입
- Java
- this예약어
- java변수
- While
- 접근제어지시자
- continue문
- 포함관계
- break문
- JAVA기초
- 인텔리제이 기초 설정
- 반복문
- 메서드 오버로딩
- 컴파일
- 형 변환
- 메서드
- 생성자
- 집합관계
- IntelliJ IDEA
- for문
- Thread
- 자바 멀티스레딩
- multi-threading
- 시스템 환경 변수 편집
Archives
- Today
- Total
최원종의 개발 블로그
JLable 사용해 이미지 겹치기 본문
-이미지 겹치기

코드
package swing.ch09;
import javax.swing.*;
public class MyFrame extends JFrame {
private JLabel backgroundMap;
private JLabel player;
public MyFrame() {
initData();
setInitLayout();
addEventListener();
}
private void initData() {
setTitle("이미지 사용 연습");
setSize(1000, 600);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 배경 이미지 설정
ImageIcon backgroundIcon = new ImageIcon("images/backgroundMap.png");
backgroundMap = new JLabel(backgroundIcon);
backgroundMap.setSize(1000, 600);
backgroundMap.setLocation(0,0);
// 플레이어 설정
ImageIcon playerIcon = new ImageIcon("images/playerL.png");
player = new JLabel(playerIcon);
player.setSize(100, 100);
player.setLocation(200, 200);
}
private void setInitLayout() {
setLayout(null); // 좌표 기반
backgroundMap.add(player);
add(backgroundMap);
setVisible(true);
}
private void addEventListener() {
}
// 테스트 코드 (메인 쓰레드)
public static void main(String[] args) {
new MyFrame();
}
}
-KeyListener사용해 이동 방향으로 이미지 변환 및 범위 안에 가두기
클램프(Clamp) 기법 : 범위 안에 가두는 기법
(0,0) (1000,0)
┌──────────────────────────────┐
│ │
│ │
│ 게임 화면 │ 세로 600
│ │
│ │
└──────────────────────────────┘
(0,600) (1000,600)
가로 1000
// x 범위 제한
if (x < 0) x = 0; // 왼쪽 벽
if (x > 900) x = 900; // 오른쪽 벽
// y 범위 제한
if (y < 0) y = 0; // 위쪽 벽
if (y > 500) y = 500; // 아래쪽 벽


-코드
package swing.ch09;
import javax.swing.*;
public class MyFrame2 extends JFrame {
private JLabel backgroundMap;
private JLabel player;
public MyFrame2() {
initData();
setInitLayout();
addEventListener();
}
private void initData() {
setTitle("이미지 사용 연습");
setSize(1000, 600);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 배경 이미지 설정
ImageIcon backgroundIcon = new ImageIcon("images/backgroundMap.png");
backgroundMap = new JLabel(backgroundIcon);
backgroundMap.setSize(1000, 600);
backgroundMap.setLocation(0,0);
// 플레이어 설정
ImageIcon playerIcon = new ImageIcon("images/playerL.png");
player = new JLabel(playerIcon);
player.setSize(100, 100);
player.setLocation(200, 200);
}
private void setInitLayout() {
setLayout(null); // 좌표 기반
backgroundMap.add(player);
add(backgroundMap);
setVisible(true);
}
private void addEventListener() {
}
// 테스트 코드 (메인 쓰레드)
public static void main(String[] args) {
new MyFrame2();
}
}'Java > SWING' 카테고리의 다른 글
| 로또 게임 만들기 (0) | 2026.03.18 |
|---|---|
| Swing (Thread 활용) (0) | 2026.03.18 |
| Key Listener (0) | 2026.03.17 |
| 이벤트 리스너(ActionListener) (0) | 2026.03.16 |
| 패널 만들어 보기 (0) | 2026.03.09 |
