我想实现一个keylistener在我的程序中使用箭头键移动汽车。 这是我的代码。Java的keylistener使用箭头键移动车
package moveCar;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class CPanel extends JPanel{
private static final long serialVersionUID = 1L;
CarComponent component;
public CPanel() {
component = new CarComponent();
JButton startButton = new JButton("Start");
JButton stopButton = new JButton("Stop");
startButton.addActionListener(new StartAction());
stopButton.addActionListener(new StopAction());
JPanel buttonPanel = new JPanel();
buttonPanel.setLayout(new FlowLayout());
buttonPanel.add(startButton);
buttonPanel.add(stopButton);
this.setLayout(new BorderLayout());
this.add(buttonPanel, BorderLayout.NORTH);
this.add(component, BorderLayout.SOUTH);
}
class StartAction implements ActionListener {
public void actionPerformed(ActionEvent e){
component.setAnimation(true);
}
}
class StopAction implements ActionListener {
public void actionPerformed(ActionEvent e){
component.setAnimation(false);
}
}
}
package moveCar;
import javax.swing.*;
public class CarViewer {
CPanel a = new CPanel();
public CarViewer(){
a.add(new CPanel());
}
public static void main(String[] arg){
JFrame frame = new JFrame();
//frame.setSize(800,200);
frame.setTitle("This is strange .....");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setContentPane(new CPanel());
frame.pack();
frame.setVisible(true);
}
}
我相信这是你需要的所有代码,但是如果你需要我的其他代码,我可以得到它。 谢谢
那么...你的问题是什么? – 2013-02-27 16:35:47
请告诉我们您的问题 – 2013-02-27 16:37:03
在哪里声明了KeyListener?无论如何,Swing使用['KeyBinding's](http://docs.oracle.com/javase/tutorial/uiswing/misc/keybinding.html)而不是'KeyListener'。请参阅[这个相似的答案](http://stackoverflow.com/questions/13770185/why-isnt-the-keylistener-working/13770483#13770483) – 2013-02-27 16:48:01