import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MoveBox extends JFrame implements KeyListener {
MovePanel drawing = new MovePanel();
int x, y, m, n;
public MoveBox() {
super("设计项目1--推箱子");
setSize(400, 400);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
add(drawing, BorderLayout.CENTER);
drawing.requestFocus();
drawing.addKeyListener(this);
validate();
}
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_UP)
drawing.moveUp();
else if (e.getKeyCode() == KeyEvent.VK_DOWN)
drawing.moveDown();
else if (e.getKeyCode() == KeyEvent.VK_LEFT)
drawing.moveLeft();
else if (e.getKeyCode() == KeyEvent.VK_RIGHT)
drawing.moveRight();
}
public void keyTyped(KeyEvent e) {
}
public void keyReleased(KeyEvent e) {
}
public static void main(String[] args) {
JFrame.setDefaultLookAndFeelDecorated(true);
new MoveBox();
}
}
class MovePanel extends Panel {
public MovePanel() {
}
int step = 5;
int WIDTH = 50, HEIGHT = 50;
int m = 210, n = 120, x = 100, y = 120;
public void paint(Graphics g) {
g.drawRect(0, 0, getSize().width - 1, getSize().height - 1);
g.setColor(Color.pink);
g.fillRect(m, n, WIDTH, HEIGHT);
g.setColor(Color.yellow);
g.fillRect(x, y, WIDTH, HEIGHT);// 可移动
}
public void moveUp() {
if (m == x & y == n + 50) {
y -= step;
n -= step;
} else
y -= step;
if (n == -50)
n = getSize().height;
if (y == -50)
y = getSize().height + 50;
repaint();
}
public void moveDown() {
if (y == n - 50 & x == m) {
y += step;
n += step;
} else
y += step;
if (n == getSize().height)
n = -50;
if (y == getSize().height + 50)
y = -100;
repaint();
}
public void moveLeft() {
if (x == (m + 50) & n == (y)) {
x -= step;
m -= step;
} else
x -= step;
if (m == -50) {
m = getSize().width;
}
if (x == -50) {
x = getSize().width + 50;
}
repaint();
}
public void moveRight() {
if (x == m - 50 & n == y) {
x += step;
m += step;
} else
x += step;
if (m == getSize().width + 50)
m = -50;
if (x == getSize().width)
x = -100;
repaint();
}
}
Java课程设计——推箱子
最新推荐文章于 2023-11-04 23:58:22 发布