package demo01;
import java.awt.Color;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
public class game {
static int r_x = 0;
static int r_y= 100;
static JPanel jPanel = new JPanel();
private JFrame jFrame = new JFrame();
public static void main(String[] args) {
// TODO Auto-generated method stub
JOptionPane jOptionPane = new JOptionPane();
JOptionPane.showConfirmDialog(null, "提醒", "开始游戏?",JOptionPane.YES_NO_OPTION); JFrame jFrame = new JFrame();
jFrame.setSize(500, 500);
jFrame.setVisible(true);
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jFrame.setLayout(null);
jFrame.add(jPanel);
jFrame.setVisible(true);
jPanel.setLayout(null);
jPanel.setBackground(Color.green);
jPanel.setBounds(r_x,r_y, 70, 30);
jPanel.setVisible(true);
}
class Mypanel extends game implements KeyListener{
public void Mypanel () {
}
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub
int n=e.getKeyCode();//获取点击的键
if (n == KeyEvent.VK_UP) {
r_y = r_y - 50;
} else if (n== KeyEvent.VK_DOWN){
r_y = r_y + 50;
}else if (n== KeyEvent.VK_LEFT){
}else if (n== KeyEvent.VK_RIGHT){
}
}
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
}
}
因为panel是容器,它没法获得焦点
要么你监听textbox这种可以获得光标的控件
要么你调用API监听全局的键盘输入
不要监听panel的键盘输入,键盘根本不会对panel进行输入
你在main中增加监听事件撒
addKeyListener(this)类似这样