Когда я пытаюсь попасть в Space Bar, ничего не происходит. Я пробовал это с помощью разных клавиш, но ничего не работает. Может кто-нибудь, пожалуйста, скажите мне, что я делаю неправильно? или почему это не работает?java - Почему мой KeyListener ничего не делает?
Также я использую Java SE 1.6 для компиляции этого.
Вот мой код:
package bigbass1997;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import javax.swing.*;
@SuppressWarnings("serial")
public class Main extends JFrame implements KeyListener, MouseListener, MouseMotionListener{
// VARIABLES
public static String title = "Royal Casino";
public static String author = "bigbass1997";
public static String version = "0.0.0";
GamePanel gp;
public Main(){
gp = new GamePanel();
this.setSize(GamePanel.gameDim);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
this.setTitle(title + " " + version);
this.setResizable(false);
this.setLocationRelativeTo(null);
this.addKeyListener(this);
this.addMouseListener(this);
this.addMouseMotionListener(this);
this.add(gp);
}
@Override
public void keyPressed(KeyEvent e) {
int key = e.getKeyCode();
if(key == KeyEvent.VK_SPACE){
Slots.slotsThread.start();
System.out.println("Slot THREAD Started");
GamePanel.slotsplaying = true;
}
}
public static void main(String[] args) {
@SuppressWarnings("unused")
Main m = new Main();
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseDragged(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseMoved(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseClicked(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub
}
}
Как добавляет KeyListener к стеклянной панели собирается решить проблему Ора в? –
-1, Где в вопросе даже предположить, что пользователь использует стеклянную панель? KeyEvents переходят к компоненту с фокусом. Стеклянное стекло даже не видно по умолчанию, поэтому оно не будет принимать ключевые события. Хорошо, что вы связались с учебником Swing, однако раздел, к которому вы должны были связать, относится к разделу «Как использовать привязки клавиш». Swing был разработан для использования ключевых привязок, а не для ключевых слушателей. – camickr
«Где в вопросе, это даже предполагает, что пользователь использует стеклянную панель?» Базовые знания Swing говорят вам, что у каждого JFrame есть стеклянное стекло. Кроме того, добавление слушателей событий в стеклянную панель заставит их поймать входные события. Вот почему я ответил как таковой. – Flaise