Java keylistener使用箭头键移动汽车

时间:2013-02-27 16:33:30

标签: java swing keylistener

我正在尝试使用箭头键实现一个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);
}
}

我相信这就是你需要的所有代码,但是如果你需要我的其他代码,我就能得到它。 谢谢

2 个答案:

答案 0 :(得分:0)

您尚未向应用程序添加任何键绑定。查看swing key bindings上的Java教程,了解有关如何执行此操作的信息。

答案 1 :(得分:-1)

您必须使用addKeyListener:

addKeyListener(yourKeyListener);

请参阅此minimal example