- bubble - 10tjdudtnpackage bubble.test.ex10;public enum EnemyWay { LEFT, RIGHT}Enemy 클래스 설계package bubble.test.ex10;import javax.swing.ImageIcon;import javax.swing.JLabel;public class Enemy extends JLabel implements Moveable { BubbleFrame mContext; // 살아 있는 상태 0, 물방울에 같힌 상태 1 private int state; // 적군에 좌표값 위치 상태 private int x; private int y; private ImageIcon enemyR, enemyL; // 움직임의 상태 private boolean left; pri..
- 2024-09-16 16:51:07
- bubble - 9 (버블 생성 동작 수정)tjdudtnBubbleFrame - 컨텍스트 생성 , Player getter 생성package bubble.test.ex09;import java.awt.event.KeyAdapter;import java.awt.event.KeyEvent;import javax.swing.ImageIcon;import javax.swing.JFrame;import javax.swing.JLabel;public class BubbleFrame extends JFrame { // 컨텍스트를 생성하는 방법 (셀프 참조) BubbleFrame mContext = this; private JLabel backgroundMap; // 포함관계 - 콤포지션 private Player player; public BubbleFrame() ..
- 2024-09-16 16:50:08
- bubble - 8 (물방울 벽 감지)tjdudtn물방울 벽 감지 ( 쓰레드 사용 안함) package bubble.test.ex08;import java.awt.Color;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;import javax.imageio.ImageIO;public class BackgroundBubbleService { private BufferedImage image; private Bubble bubble; // 연관 관계(생성자 의존 주입) // 생성자 public BackgroundBubbleService(Bubble bubble) { this.bubble = bubble; try { image = ImageI..
- 2024-09-16 16:48:25
- bubble - 7 (물방울 동작 처리)tjdudtnpackage bubble.test.ex07;public interface Moveable { // public abstract 생략 가능 public abstract void left(); public abstract void right(); public abstract void up(); // 인터페스트 추가 기능 default 사용해보기 // 인터페이스에 모든 메서드는 추상 메서드이어야 한다. // 단 default 메서드를 제외 하고 default void down() {}; // 마지막에 default 는 세미콜론 추가 해야 한다. }package bubble.test.ex07;public enum PlayerWay { LEFT, RIGHT}package bubble.test.ex0..
- 2024-09-16 16:46:34
- bubble - 6 (바닥, 층 감지 기능 추가)tjdudtn기본 코드 - 추후 수정 package bubble.test.ex06;import java.awt.Color;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;import javax.imageio.ImageIO;/** * 현재 메인 쓰레드는 너~무 빠쁨 백그라운드에서 계속 Player 에 움직임을 관찰할 예정 */public class BackgroundPlayerService implements Runnable { private BufferedImage image; private Player player; // 생성자 의존 주입 DI public BackgroundPlayerService(Player p..
- 2024-09-16 16:45:38
- Swing - 5 (이벤트 리스너)tjdudtnpackage ch05;import java.awt.Color;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;// 이벤트 리스너를 사용하는 방법// 1. implements ActionListener 사용 하는 방법 // ActionListener --> 운영 체제가 제어하는 이벤트를 등록할 수 있다. public class ColorChangeFrame extends JFrame implements ActionListener { // 이벤트 리스너에 대한 개념을 이해하자. priv..
- 2024-09-16 16:44:05
- bubble - 4 (중복쓰레드 생성 방지)tjdudtnpackage bubble.test.ex04;import java.awt.Color;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;import javax.imageio.ImageIO;/** * 현재 메인 쓰레드는 너~무 빠쁨 백그라운드에서 계속 Player 에 움직임을 관찰할 예정 */public class BackgroundPlayerService implements Runnable { private BufferedImage image; private Player player; // 생성자 의존 주입 DI public BackgroundPlayerService(Player player) { this...
- 2024-09-16 16:42:24
- bubble - 3 (왼쪽 오른쪽 벽 감지)tjdudtnpackage bubble.test.ex03;import java.awt.event.KeyAdapter;import java.awt.event.KeyEvent;import javax.swing.ImageIcon;import javax.swing.JFrame;import javax.swing.JLabel;public class BubbleFrame extends JFrame { private JLabel backgroundMap; // 포함관계 - 콤포지션 private Player player; public BubbleFrame() { initData(); setInitLayout(); addEventListener(); // Player 백그라운드 서비스 시작 new Thread(..
- 2024-09-16 16:40:15
- bubble - 2tjdudtnpackage bubble.test.ex02;import javax.swing.ImageIcon;import javax.swing.JLabel;public class Player extends JLabel implements Moveable { private int x; private int y; private ImageIcon playerR, playerL; // 움직임의 상태 private boolean left; private boolean right; private boolean up; private boolean down; // 플레이어 속도 상태 private final int SPEED = 4; private final int JUMPSPEED = 2; // setter p..
- 2024-09-16 16:38:28
- bubble - 1tjdudtnpackage bubble.test.ex01;public interface Moveable { // public abstract 생략 가능 public abstract void left(); public abstract void right(); public abstract void up(); public abstract void down(); }package bubble.test.ex01;import javax.swing.ImageIcon;import javax.swing.JLabel;public class Player extends JLabel implements Moveable { private int x; private int y; private ImageIcon playerR, player..
- 2024-09-16 16:37:06
- Swing - 8 (쓰레드 활용)tjdudtnpackage ch08;import java.awt.Graphics;import java.awt.event.KeyEvent;import java.awt.event.KeyListener;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;public class GameFrame extends JFrame { BufferedImage backgroundImage; BufferedImage player1; BufferedImage enemy1; ImagePanel imag..
- 2024-09-16 16:35:41
- Swing - 7 로또 게임 만들기tjdudtnpackage ch07;import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;public class LottoFrame extends JFrame implements ActionListener { private JButton button; public LottoFrame() { initData(); setInitLayout(); addEventListener(); } private void initData() { setTitle("Lotto Game"); setSize(600..
- 2024-09-16 16:34:31
- Swing - 6 (Key Listener)tjdudtn시나리오 코드 1 package ch06;import java.awt.BorderLayout;import javax.swing.JFrame;import javax.swing.JTextArea;/** * 키 이벤트 리스너 사용해보기 */public class MyKeyEvent extends JFrame { private JTextArea textArea; public MyKeyEvent() { initData(); setInitLayout(); addEventListener(); } private void initData() { setSize(500, 500); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setResizable(false); //..
- 2024-09-16 16:32:54
- Swing - 5 (이벤트 리스너)tjdudtnpackage ch05;import java.awt.Color;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;// 이벤트 리스너를 사용하는 방법// 1. implements ActionListener 사용 하는 방법 // ActionListener --> 운영 체제가 제어하는 이벤트를 등록할 수 있다. public class ColorChangeFrame extends JFrame implements ActionListener { // 이벤트 리스너에 대한 개념을 이해하자. priv..
- 2024-09-16 16:30:56
- Swing - 4 (이미지 겹치는 방법)tjdudtn💡 JLable 을 이용한 이미를 다루는 방법 package ch04;import javax.swing.Icon;import javax.swing.ImageIcon;import javax.swing.JFrame;import javax.swing.JLabel;/** * JLable 이용해서 이미지를 다룰 수 있다. * Jlable.add(); 메서드를 통해서 이지를 겹칠 수 있다 * 좌표 기준으로 이미지를 셋팅을 할려면 * 배치관리자를 null 값으로 셋팅 해야 한다. */public class MyFrame extends JFrame { private JLabel backgroundMap; private JLabel player; public MyFrame() { initData(); ..
- 2024-09-16 16:28:57
- Swing - 3 (이미지 올리기)tjdudtn💡 ImageIcon 을 활용한 이미지를 사용하는 방법 : 다운 로드 기본코드 확인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..
- 2024-09-16 16:27:43
- Swing - 2tjdudtn기본 컴포넌트를 확인해 보자.package ch02;import java.awt.FlowLayout;import javax.swing.JButton;import javax.swing.JCheckBox;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPasswordField;import javax.swing.JTextField;public class MyComponents extends JFrame { private JButton button; private JLabel label; private JTextField textField; private JPasswordField passwordField; private JChe..
- 2024-09-16 16:24:58
- Swing - 1tjdudtnpackage ch01;import java.awt.FlowLayout;import javax.swing.JButton;import javax.swing.JFrame;// Swinig -> 배치 관리자 : FlowLayout // 컴포넌트들을 (버튼, 라벨) 등을 수평, 수직으로 배치를 해주는 클래스 이다. public class FlowLayoutEx extends JFrame { private JButton button1; private JButton button2; // 4개더 만들어서 추가 하기 // 생성자 public FlowLayoutEx() { super.setTitle("FlowLayout 연습"); super.setSize(500, 500); super.setVisible(tru..
- 2024-09-16 16:23:44
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)