/*写了个小程序,通过键盘的方向键控制红色的圆球(标签)上下左右运动.不知道是否实现你的想法*/import java.awt.*; import java.awt.geom.*; import java.awt.event.*; import javax.swing.*;public class DirectionListener extends JFrame{ private int x,y; public Piece piece; public DirectionListener(){ x=0; y=0; piece=new Piece(); Container cp=getContentPane(); cp.setBackground(new Color(175,175,175)); setSize(600,600); cp.add(piece);KeyAdapter keyHandler=new KeyAdapter(){ public void keyPressed(KeyEvent e){ switch(e.getKeyCode()){ case KeyEvent.VK_DOWN: y +=20; piece.setLocation(x,y); break; case KeyEvent.VK_LEFT: x -=20; piece.setLocation(x,y); break; case KeyEvent.VK_RIGHT: x +=20; piece.setLocation(x,y); break; case KeyEvent.VK_UP: y -=20; piece.setLocation(x,y); break;
import java.awt.geom.*;
import java.awt.event.*;
import javax.swing.*;public class DirectionListener extends JFrame{
private int x,y;
public Piece piece;
public DirectionListener(){
x=0;
y=0;
piece=new Piece();
Container cp=getContentPane();
cp.setBackground(new Color(175,175,175));
setSize(600,600);
cp.add(piece);KeyAdapter keyHandler=new KeyAdapter(){
public void keyPressed(KeyEvent e){
switch(e.getKeyCode()){
case KeyEvent.VK_DOWN:
y +=20;
piece.setLocation(x,y);
break;
case KeyEvent.VK_LEFT:
x -=20;
piece.setLocation(x,y);
break;
case KeyEvent.VK_RIGHT:
x +=20;
piece.setLocation(x,y); break;
case KeyEvent.VK_UP:
y -=20;
piece.setLocation(x,y);
break;
default:
break;
}
}
};
addKeyListener(keyHandler);
}
public static void main(String[] args){
DirectionListener frame=new DirectionListener();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
private class Piece extends JLabel{
public void paintComponent(Graphics g){
super.paintComponent(g);
Graphics2D g2=(Graphics2D)g;
g2.setPaint(Color.RED);
g2.fill(new Ellipse2D.Double(0,0,30,30));
}
}
}