728x90
🥐 키보드 입력 이벤트 리스너
- 키패드 버튼을 눌렀을 때 키보드 이벤트 리스너가 작동하여 해당 키보드 이벤트 처리
- 키보드 눌렀을 때 애니매이션 처리 및 음악 재생
- 완전한 키보드 이벤트 처리 방법
🥨 참고:https://www.youtube.com/watch?v=Nd-YYK9ED-s&list=PLRx0vPvlEmdDySO3wDqMYGKMVH4Qa4QhR&index=11
DynamicBeat.java
package dynamic_beat_11;
import java.awt.Color;
import java.awt.Cursor;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.RenderingHints;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import java.util.ArrayList;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import dynamic_beat_9.Main;
public class DynamicBeat extends JFrame {
private Image screenImage;
private Graphics screenGraphic;
private ImageIcon exitButtonEnteredImage = new ImageIcon(Main.class.getResource("../images/exitButtonEntered.png"));
private ImageIcon exitButtonBasicImage = new ImageIcon(Main.class.getResource("../images/exitButtonBasic.png"));
private ImageIcon startButtonEnteredImage = new ImageIcon(Main.class.getResource("../images/startButtonEntered.png"));
private ImageIcon startButtonBasicImage = new ImageIcon(Main.class.getResource("../images/startButtonBasic.png"));
private ImageIcon quitButtonEnteredImage = new ImageIcon(Main.class.getResource("../images/quitButtonEntered.png"));
private ImageIcon quitButtonBasicImage = new ImageIcon(Main.class.getResource("../images/quitButtonBasic.png"));
private ImageIcon leftButtonEnteredImage = new ImageIcon(Main.class.getResource("../images/leftButtonEntered.png"));
private ImageIcon leftButtonBasicImage = new ImageIcon(Main.class.getResource("../images/leftButtonBasic.png"));
private ImageIcon rightButtonEnteredImage = new ImageIcon(Main.class.getResource("../images/rightButtonEntered.png"));
private ImageIcon rightButtonBasicImage = new ImageIcon(Main.class.getResource("../images/rightButtonBasic.png"));
private ImageIcon easyButtonEnteredImage = new ImageIcon(Main.class.getResource("../images/easyButtonEntered.png"));
private ImageIcon easyButtonBasicImage = new ImageIcon(Main.class.getResource("../images/easyButtonBasic.png"));
private ImageIcon hardButtonEnteredImage = new ImageIcon(Main.class.getResource("../images/hardButtonEntered.png"));
private ImageIcon hardButtonBasicImage = new ImageIcon(Main.class.getResource("../images/hardButtonBasic.png"));
private ImageIcon backButtonEnteredImage = new ImageIcon(Main.class.getResource("../images/backButtonEntered.png"));
private ImageIcon backButtonBasicImage = new ImageIcon(Main.class.getResource("../images/backButtonBasic.png"));
private Image background = new ImageIcon(Main.class.getResource("../images/introBackground.jpg"))
.getImage();
private JLabel menuBar = new JLabel(new ImageIcon(Main.class.getResource("../images/menuBar.png")));
private JButton exitButton = new JButton(exitButtonBasicImage);
private JButton startButton = new JButton(startButtonBasicImage);
private JButton quitButton = new JButton(quitButtonBasicImage);
private JButton leftButton = new JButton(leftButtonBasicImage);
private JButton rightButton = new JButton(rightButtonBasicImage);
private JButton easyButton = new JButton(easyButtonBasicImage);
private JButton hardButton = new JButton(hardButtonBasicImage);
private JButton backButton = new JButton(backButtonBasicImage);
private int mouseX, mouseY;
private boolean isMainScreen = false;
private boolean isGameScreen = false;
ArrayList<Track> trackList = new ArrayList<Track>();
private Image titleImage;
private Image selectedImage;
private Music selectedMusic;
private Music introMusic = new Music("Walking.mp3", true);
private int nowSelected = 0;
public static Game game = new Game();
public DynamicBeat() {
setUndecorated(true);
setTitle("Dynamic Beat");
setSize(Main.SCREEN_WIDTH, Main.SCREEN_HEIGHT);
setResizable(false);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
setBackground(new Color(0, 0, 0, 0));
setLayout(null);
addKeyListener(new KeyListener());
introMusic.start();
trackList.add(new Track("Mighty Love Title Image.png", "Mighty Love Start Image.png",
"Mighty Love Game Image.jpg", "Mighty Love Selected.mp3", "Joakim Karud - Mighty Love.mp3"));
trackList.add(new Track("Wild Flower Title Image.png", "Wild Flower Start Image.png",
"Wild Flower Game Image.jpg", "Wild Flower Selected.mp3", "Joakim Karud - Wild Flower.mp3"));
trackList.add(new Track("Energy Title Image.png", "Energy Start Image.png",
"Energy Game Image.png", "Energy Selected.mp3", "Bensound - Energy.mp3"));
exitButton.setBounds(1245, 0, 30, 30);
exitButton.setBorderPainted(false);
exitButton.setContentAreaFilled(false);
exitButton.setFocusPainted(false);
exitButton.addMouseListener(new MouseAdapter() {
@Override
public void mouseEntered(MouseEvent e) {
exitButton.setIcon(exitButtonEnteredImage);
exitButton.setCursor(new Cursor(Cursor.HAND_CURSOR));
Music buttonEnteredMusic = new Music("buttonEnteredMusic.mp3", false);
buttonEnteredMusic.start();
}
@Override
public void mouseExited(MouseEvent e) {
exitButton.setIcon(exitButtonBasicImage);
exitButton.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
}
@Override
public void mousePressed(MouseEvent e) {
Music buttonEnteredMusic = new Music("buttonPressedMusic.mp3", false);
buttonEnteredMusic.start();
try {
Thread.sleep(1000);
} catch (InterruptedException ex) {
ex.printStackTrace();
}
System.exit(0);
}
});
add(exitButton);
startButton.setBounds(40, 200, 400, 100);
startButton.setBorderPainted(false);
startButton.setContentAreaFilled(false);
startButton.setFocusPainted(false);
startButton.addMouseListener(new MouseAdapter() {
@Override
public void mouseEntered(MouseEvent e) {
startButton.setIcon(startButtonEnteredImage);
startButton.setCursor(new Cursor(Cursor.HAND_CURSOR));
Music buttonEnteredMusic = new Music("buttonEnteredMusic.mp3", false);
buttonEnteredMusic.start();
}
@Override
public void mouseExited(MouseEvent e) {
startButton.setIcon(startButtonBasicImage);
startButton.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
}
@Override
public void mousePressed(MouseEvent e) {
Music buttonEnteredMusic = new Music("buttonPressedMusic.mp3", false);
buttonEnteredMusic.start();
enterMain();
}
});
add(startButton);
quitButton.setBounds(40, 330, 400, 100);
quitButton.setBorderPainted(false);
quitButton.setContentAreaFilled(false);
quitButton.setFocusPainted(false);
quitButton.addMouseListener(new MouseAdapter() {
@Override
public void mouseEntered(MouseEvent e) {
quitButton.setIcon(quitButtonEnteredImage);
quitButton.setCursor(new Cursor(Cursor.HAND_CURSOR));
Music buttonEnteredMusic = new Music("buttonEnteredMusic.mp3", false);
buttonEnteredMusic.start();
}
@Override
public void mouseExited(MouseEvent e) {
quitButton.setIcon(quitButtonBasicImage);
quitButton.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
}
@Override
public void mousePressed(MouseEvent e) {
Music buttonEnteredMusic = new Music("buttonPressedMusic.mp3", false);
buttonEnteredMusic.start();
try {
Thread.sleep(1000);
} catch (InterruptedException ex) {
ex.printStackTrace();
}
System.exit(0);
}
});
add(quitButton);
leftButton.setVisible(false);
leftButton.setBounds(140, 310, 60, 60);
leftButton.setBorderPainted(false);
leftButton.setContentAreaFilled(false);
leftButton.setFocusPainted(false);
leftButton.addMouseListener(new MouseAdapter() {
@Override
public void mouseEntered(MouseEvent e) {
leftButton.setIcon(leftButtonEnteredImage);
leftButton.setCursor(new Cursor(Cursor.HAND_CURSOR));
Music buttonEnteredMusic = new Music("buttonEnteredMusic.mp3", false);
buttonEnteredMusic.start();
}
@Override
public void mouseExited(MouseEvent e) {
leftButton.setIcon(leftButtonBasicImage);
leftButton.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
}
@Override
public void mousePressed(MouseEvent e) {
Music buttonEnteredMusic = new Music("buttonPressedMusic.mp3", false);
buttonEnteredMusic.start();
selectLeft();
}
});
add(leftButton);
rightButton.setVisible(false);
rightButton.setBounds(1080, 310, 60, 60);
rightButton.setBorderPainted(false);
rightButton.setContentAreaFilled(false);
rightButton.setFocusPainted(false);
rightButton.addMouseListener(new MouseAdapter() {
@Override
public void mouseEntered(MouseEvent e) {
rightButton.setIcon(rightButtonEnteredImage);
rightButton.setCursor(new Cursor(Cursor.HAND_CURSOR));
Music buttonEnteredMusic = new Music("buttonEnteredMusic.mp3", false);
buttonEnteredMusic.start();
}
@Override
public void mouseExited(MouseEvent e) {
rightButton.setIcon(rightButtonBasicImage);
rightButton.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
}
@Override
public void mousePressed(MouseEvent e) {
Music buttonEnteredMusic = new Music("buttonPressedMusic.mp3", false);
buttonEnteredMusic.start();
selectRight();
}
});
add(rightButton);
easyButton.setVisible(false);
easyButton.setBounds(375, 580, 250, 67);
easyButton.setBorderPainted(false);
easyButton.setContentAreaFilled(false);
easyButton.setFocusPainted(false);
easyButton.addMouseListener(new MouseAdapter() {
@Override
public void mouseEntered(MouseEvent e) {
easyButton.setIcon(easyButtonEnteredImage);
easyButton.setCursor(new Cursor(Cursor.HAND_CURSOR));
Music buttonEnteredMusic = new Music("buttonEnteredMusic.mp3", false);
buttonEnteredMusic.start();
}
@Override
public void mouseExited(MouseEvent e) {
easyButton.setIcon(easyButtonBasicImage);
easyButton.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
}
@Override
public void mousePressed(MouseEvent e) {
Music buttonEnteredMusic = new Music("buttonPressedMusic.mp3", false);
buttonEnteredMusic.start();
gameStart(nowSelected, "easy");
}
});
add(easyButton);
hardButton.setVisible(false);
hardButton.setBounds(655, 580, 250, 67);
hardButton.setBorderPainted(false);
hardButton.setContentAreaFilled(false);
hardButton.setFocusPainted(false);
hardButton.addMouseListener(new MouseAdapter() {
@Override
public void mouseEntered(MouseEvent e) {
hardButton.setIcon(hardButtonEnteredImage);
hardButton.setCursor(new Cursor(Cursor.HAND_CURSOR));
Music buttonEnteredMusic = new Music("buttonEnteredMusic.mp3", false);
buttonEnteredMusic.start();
}
@Override
public void mouseExited(MouseEvent e) {
hardButton.setIcon(hardButtonBasicImage);
hardButton.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
}
@Override
public void mousePressed(MouseEvent e) {
Music buttonEnteredMusic = new Music("buttonPressedMusic.mp3", false);
buttonEnteredMusic.start();
gameStart(nowSelected, "hard");
}
});
add(hardButton);
backButton.setVisible(false);
backButton.setBounds(20, 50, 60, 60);
backButton.setBorderPainted(false);
backButton.setContentAreaFilled(false);
backButton.setFocusPainted(false);
backButton.addMouseListener(new MouseAdapter() {
@Override
public void mouseEntered(MouseEvent e) {
backButton.setIcon(backButtonEnteredImage);
backButton.setCursor(new Cursor(Cursor.HAND_CURSOR));
Music buttonEnteredMusic = new Music("buttonEnteredMusic.mp3", false);
buttonEnteredMusic.start();
}
@Override
public void mouseExited(MouseEvent e) {
backButton.setIcon(backButtonBasicImage);
backButton.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
}
@Override
public void mousePressed(MouseEvent e) {
Music buttonEnteredMusic = new Music("buttonPressedMusic.mp3", false);
buttonEnteredMusic.start();
backMain();
}
});
add(backButton);
menuBar.setBounds(0, 0, 1280, 30);
menuBar.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
mouseX = e.getX();
mouseY = e.getY();
}
});
menuBar.addMouseMotionListener(new MouseMotionAdapter() {
@Override
public void mouseDragged(MouseEvent e) {
int x = e.getXOnScreen();
int y = e.getYOnScreen();
setLocation(x - mouseX, y - mouseY);
}
});
add(menuBar);
}
public void paint(Graphics g) {
screenImage = createImage(Main.SCREEN_WIDTH, Main.SCREEN_HEIGHT);
screenGraphic = screenImage.getGraphics();
screenDraw((Graphics2D) screenGraphic);
g.drawImage(screenImage, 0, 0, null);
}
public void screenDraw(Graphics2D g) {
g.drawImage(background, 0, 0, null);
if(isMainScreen)
{
g.drawImage(selectedImage, 340, 100, null);
g.drawImage(titleImage, 340, 70, null);
}
if(isGameScreen)
{
game.screenDraw(g);
}
paintComponents(g);
this.repaint();
}
public void selectTrack(int nowSelected) {
if(selectedMusic != null)
selectedMusic.close();
titleImage = new ImageIcon(Main.class.getResource("../images/" + trackList.get(nowSelected).getTitleImage())).getImage();
selectedImage = new ImageIcon(Main.class.getResource("../images/" + trackList.get(nowSelected).getStartImage())).getImage();
selectedMusic = new Music(trackList.get(nowSelected).getStartMusic(), true);
selectedMusic.start();
}
public void selectLeft() {
if(nowSelected == 0)
nowSelected = trackList.size() - 1;
else
nowSelected--;
selectTrack(nowSelected);
}
public void selectRight() {
if(nowSelected == trackList.size() - 1)
nowSelected = 0;
else
nowSelected++;
selectTrack(nowSelected);
}
public void gameStart(int nowSelected, String difficulty) {
if(selectedMusic != null)
selectedMusic.close();
isMainScreen = false;
leftButton.setVisible(false);
rightButton.setVisible(false);
easyButton.setVisible(false);
hardButton.setVisible(false);
background = new ImageIcon(Main.class.getResource("../images/" + trackList.get(nowSelected).getGameImage()))
.getImage();
backButton.setVisible(true);
isGameScreen = true;
setFocusable(true);
}
public void backMain() {
isMainScreen = true;
leftButton.setVisible(true);
rightButton.setVisible(true);
easyButton.setVisible(true);
hardButton.setVisible(true);
background = new ImageIcon(Main.class.getResource("../images/mainBackground.jpg"))
.getImage();
backButton.setVisible(false);
selectTrack(nowSelected);
isGameScreen = false;
}
public void enterMain() {
startButton.setVisible(false);
quitButton.setVisible(false);
background = new ImageIcon(Main.class.getResource("../images/introBackground.jpg"))
.getImage();
isMainScreen = true;
leftButton.setVisible(true);
rightButton.setVisible(true);
easyButton.setVisible(true);
hardButton.setVisible(true);
introMusic.close();
selectTrack(0);
}
}
Game.java
package dynamic_beat_11;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.RenderingHints;
import java.net.URL;
import javax.swing.ImageIcon;
public class Game extends Thread {
private Image noteBasicImage = new ImageIcon(Main.class.getResource("../images/noteBasic.png"))
.getImage();
private Image noteRouteLineImage = new ImageIcon(Main.class.getResource("../images/noteRouteLine.png"))
.getImage();
private Image judgementLineImage = new ImageIcon(Main.class.getResource("../images/judgementLine.png"))
.getImage();
private Image gameInfoImage = new ImageIcon(Main.class.getResource("../images/gameInfo.png"))
.getImage();
private Image noteRouteSImage = new ImageIcon(Main.class.getResource("../images/noteRoute.png")).getImage();
private Image noteRouteDImage = new ImageIcon(Main.class.getResource("../images/noteRoute.png")).getImage();
private Image noteRouteFImage = new ImageIcon(Main.class.getResource("../images/noteRoute.png")).getImage();
private Image noteRouteSpace1Image = new ImageIcon(Main.class.getResource("../images/noteRoute.png")).getImage();
private Image noteRouteSpace2Image = new ImageIcon(Main.class.getResource("../images/noteRoute.png")).getImage();
private Image noteRouteJImage = new ImageIcon(Main.class.getResource("../images/noteRoute.png")).getImage();
private Image noteRouteKImage = new ImageIcon(Main.class.getResource("../images/noteRoute.png")).getImage();
private Image noteRouteLImage = new ImageIcon(Main.class.getResource("../images/noteRoute.png")).getImage();
public void screenDraw(Graphics2D g) {
g.drawImage(noteRouteSImage, 228, 30, null);
g.drawImage(noteRouteDImage, 332, 30, null);
g.drawImage(noteRouteFImage, 436, 30, null);
g.drawImage(noteRouteSpace1Image, 540, 30, null);
g.drawImage(noteRouteSpace2Image, 640, 30, null);
g.drawImage(noteRouteJImage, 744, 30, null);
g.drawImage(noteRouteKImage, 848, 30, null);
g.drawImage(noteRouteLImage, 952, 30, null);
g.drawImage(noteRouteLineImage, 224, 30, null);
g.drawImage(noteRouteLineImage, 328, 30, null);
g.drawImage(noteRouteLineImage, 432, 30, null);
g.drawImage(noteRouteLineImage, 536, 30, null);
g.drawImage(noteRouteLineImage, 740, 30, null);
g.drawImage(noteRouteLineImage, 844, 30, null);
g.drawImage(noteRouteLineImage, 948, 30, null);
g.drawImage(noteRouteLineImage, 1052, 30, null);
g.drawImage(gameInfoImage, 0, 660, null);
g.drawImage(judgementLineImage, 0, 580, null);
g.drawImage(noteBasicImage, 228, 120, null);
g.drawImage(noteBasicImage, 332, 580, null);
g.drawImage(noteBasicImage, 436, 500, null);
g.drawImage(noteBasicImage, 540, 340, null);
g.drawImage(noteBasicImage, 640, 340, null);
g.drawImage(noteBasicImage, 744, 325, null);
g.drawImage(noteBasicImage, 848, 305, null);
g.drawImage(noteBasicImage, 952, 305, null);
g.setColor(Color.white);
g.setRenderingHint( RenderingHints.KEY_TEXT_ANTIALIASING,
RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
g.setColor(Color.WHITE);
g.setFont(new Font("Arial", Font.BOLD, 30));
g.drawString("Joakim Karud - Mighty Love", 20, 702);
g.drawString("Easy", 1190, 702);
g.setFont(new Font("Arial", Font.PLAIN, 26));
g.setColor(Color.DARK_GRAY);
g.drawString("S", 270, 609);
g.drawString("D", 374, 609);
g.drawString("F", 478, 609);
g.drawString("Space Bar", 580, 609);
g.drawString("J", 784, 609);
g.drawString("K", 889, 609);
g.drawString("L", 993, 609);
g.setColor(Color.LIGHT_GRAY);
g.setFont(new Font("Elephant", Font.BOLD, 30));
g.drawString("000000", 565, 702);
}
public void pressS() {
//System.out.println(Main.class.getResource("../images/noteRoutePressed.png"));
noteRouteSImage = new ImageIcon(Main.class.getResource("../images/noteRoutePressed.png")).getImage();
new Music("drumSmall1.mp3", false).start();
}
public void releaseS() {
noteRouteSImage = new ImageIcon(Main.class.getResource("../images/noteRoute.png")).getImage();
}
public void pressD() {
noteRouteDImage = new ImageIcon(Main.class.getResource("../images/noteRoutePressed.png")).getImage();
new Music("drumSmall1.mp3", false).start();
}
public void releaseD() {
noteRouteDImage = new ImageIcon(Main.class.getResource("../images/noteRoute.png")).getImage();
}
public void pressF() {
noteRouteFImage = new ImageIcon(Main.class.getResource("../images/noteRoutePressed.png")).getImage();
new Music("drumSmall1.mp3", false).start();
}
public void releaseF() {
noteRouteFImage = new ImageIcon(Main.class.getResource("../images/noteRoute.png")).getImage();
}
public void pressSpace() {
noteRouteSpace1Image = new ImageIcon(Main.class.getResource("../images/noteRoutePressed.png")).getImage();
noteRouteSpace2Image = new ImageIcon(Main.class.getResource("../images/noteRoutePressed.png")).getImage();
new Music("drumBig1.mp3", false).start();
}
public void releaseSpace() {
noteRouteSpace1Image = new ImageIcon(Main.class.getResource("../images/noteRoute.png")).getImage();
noteRouteSpace2Image = new ImageIcon(Main.class.getResource("../images/noteRoute.png")).getImage();
}
public void pressJ() {
noteRouteJImage = new ImageIcon(Main.class.getResource("../images/noteRoutePressed.png")).getImage();
new Music("drumSmall1.mp3", false).start();
}
public void releaseJ() {
noteRouteJImage = new ImageIcon(Main.class.getResource("../images/noteRoute.png")).getImage();
}
public void pressK() {
noteRouteKImage = new ImageIcon(Main.class.getResource("../images/noteRoutePressed.png")).getImage();
new Music("drumSmall1.mp3", false).start();
}
public void releaseK() {
noteRouteKImage = new ImageIcon(Main.class.getResource("../images/noteRoute.png")).getImage();
}
public void pressL() {
noteRouteLImage = new ImageIcon(Main.class.getResource("../images/noteRoutePressed.png")).getImage();
new Music("drumSmall1.mp3", false).start();
}
public void releaseL() {
noteRouteLImage = new ImageIcon(Main.class.getResource("../images/noteRoute.png")).getImage();
}
@Override
public void run() {
}
}
KeyListener.java
package dynamic_beat_11;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
public class KeyListener extends KeyAdapter {
@Override
public void keyPressed(KeyEvent e) {
if(DynamicBeat.game == null) {
return;
}
if(e.getKeyCode() == KeyEvent.VK_S) {
DynamicBeat.game.pressS();
}
else if(e.getKeyCode() == KeyEvent.VK_D) {
DynamicBeat.game.pressD();
}
else if(e.getKeyCode() == KeyEvent.VK_F) {
DynamicBeat.game.pressF();
}
else if(e.getKeyCode() == KeyEvent.VK_SPACE) {
DynamicBeat.game.pressSpace();
}
else if(e.getKeyCode() == KeyEvent.VK_J) {
DynamicBeat.game.pressJ();
}
else if(e.getKeyCode() == KeyEvent.VK_K) {
DynamicBeat.game.pressK();
}
else if(e.getKeyCode() == KeyEvent.VK_L) {
DynamicBeat.game.pressL();
}
}
@Override
public void keyReleased(KeyEvent e) {
if(DynamicBeat.game == null)
return;
if(e.getKeyCode() == KeyEvent.VK_S) {
DynamicBeat.game.releaseS();
}
else if(e.getKeyCode() == KeyEvent.VK_D) {
DynamicBeat.game.releaseD();
}
else if(e.getKeyCode() == KeyEvent.VK_F) {
DynamicBeat.game.releaseF();
}
else if(e.getKeyCode() == KeyEvent.VK_SPACE) {
DynamicBeat.game.releaseSpace();
}
else if(e.getKeyCode() == KeyEvent.VK_J) {
DynamicBeat.game.releaseJ();
}
else if(e.getKeyCode() == KeyEvent.VK_K) {
DynamicBeat.game.releaseK();
}
else if(e.getKeyCode() == KeyEvent.VK_L) {
DynamicBeat.game.releaseL();
}
}
}
분명 코드를 잘 작성했는데 키보드가 인식이 안됐다...그래서 뭐가 문제인지 봤더니...
이미지를 제대로 인식하지 못했다...
이럴 때 이미지를 제대로 인식했나 못했나 확인을 해야한다.
확인 하는 방법은.......
🍔 해결 방법
public void pressS() {
// 매우 중요
System.out.println(Main.class.getResource("../images/noteRoutePressed.png"));
noteRouteSImage = new ImageIcon(Main.class.getResource("../images/noteRoutePressed.png")).getImage();
new Music("drumSmall1.mp3", false).start();
}
System.out.println(Main.class.getResource("../images/noteRoutePressed.png"));
으로 파일을 잘 인식했는지 확인한다....
분명 폴더 안에 파일이 있는데도 파일을 인식하지 못해서...몇시간 동안 헤맸다...
이 글을 읽는 사람에게는 그런 시간이 낭비 되지 않기를 바라며...
728x90
'토이 프로젝트 > 자바 리듬게임 만들기' 카테고리의 다른 글
[project] 자바 리듬게임 만들기 13 (0) | 2023.03.13 |
---|---|
[project] 자바 리듬게임 만들기 12 (0) | 2023.03.13 |
[project] 자바 리듬게임 만들기 10 (0) | 2023.03.13 |
[project] 자바 리듬게임 만들기 9 (0) | 2023.03.13 |
[project] 자바 리듬게임 만들기 8 (0) | 2023.03.09 |