在我的程序中工作时,我发现由于某种原因,我的KeyPressed方法没有任何反应。下面是代码:
我非常感激您的帮助,因为我已经搜索了一周,但仍无法找到解决方案。
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GridBagLayout;
import java.awt.RenderingHints;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Main extends JPanel implements KeyListener{
Environment environment = new Environment();
Cube cube = new Cube();
public void paint(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
environment.createBox(g2d);
cube.createCube(g2d);
}
@Override
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ESCAPE){
cube.cube.setLocation(cube.x + 200, cube.y);
}
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
public static void main(String[] args) throws InterruptedException {
JFrame frame = new JFrame();
Main m = new Main();
m.addKeyListener(m);
frame.add(m);
frame.setSize(700, 1000);
frame.setVisible(true);
frame.setTitle("The Cube");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(true);
frame.setLocationRelativeTo(null);
frame.setBackground(new Color(240, 84, 84));
while (true) {
m.repaint();
Thread.sleep(10);
}
}
}
我非常感激您的帮助,因为我已经搜索了一周,但仍无法找到解决方案。