📄 move.java
字号:
import java.awt.event.*;import java.applet.*;import java.awt.*;public class Move extends Applet implements KeyListener,ActionListener{ Button b_go=new Button("go"), b_replay=new Button("replay"); Rectangle rect1,rect2,rect3; int b_x=0,b_y=0; public void init() {b_go.addKeyListener(this); b_replay.addActionListener(this); setLayout(null); //代表迷宫的矩形: rect1=new Rectangle(20,40,200,40); rect2=new Rectangle(200,40,24,240); rect3=new Rectangle(200,220,100,40); b_go.setBackground(Color.red); //代表走迷宫者的按扭。 add(b_go);b_go.setBounds(22,45,20,20); b_x=b_go.getBounds().x;b_y=b_go.getBounds().y; b_go.requestFocus() ; add(b_replay);b_replay.setBounds(2,2,45,16);//点击重新开始的按扭。 } public void paint(Graphics g) { //画出迷宫: g.setColor(Color.green); g.fillRect(20,40,200,40); g.setColor(Color.yellow); g.fillRect(200,40,40,240); g.setColor(Color.cyan); g.fillRect(200,220,100,40); g.drawString("出口",310,220); g.setColor(Color.black); g.drawString("点击红色按扭,然后用键盘上的方向键移动按扭",100,20); } public void keyPressed(KeyEvent e) { //按键盘上的上下、左右键在迷宫中行走: if((e.getKeyCode()==KeyEvent.VK_UP)) { //创建一个和按扭:b_go 同样大小的矩形: Rectangle rect=new Rectangle(b_x,b_y,20,20); //要求必须在迷宫内行走: if(rect.intersects(rect1)||rect.intersects(rect2)||rect.intersects(rect3)) {b_y=b_y-2;b_go.setLocation(b_x,b_y);} } else if(e.getKeyCode()==KeyEvent.VK_DOWN) { Rectangle rect=new Rectangle(b_x,b_y,20,20); if(rect.intersects(rect1)||rect.intersects(rect2)||rect.intersects(rect3)) { b_y=b_y+2;b_go.setLocation(b_x,b_y);} } else if(e.getKeyCode()==KeyEvent.VK_LEFT) { Rectangle rect=new Rectangle(b_x,b_y,20,20); if(rect.intersects(rect1)||rect.intersects(rect2)||rect.intersects(rect3)) {b_x=b_x-2;b_go.setLocation(b_x,b_y);} } else if(e.getKeyCode()==KeyEvent.VK_RIGHT) { Rectangle rect=new Rectangle(b_x,b_y,20,20); if(rect.intersects(rect1)||rect.intersects(rect2)||rect.intersects(rect3)) { b_x=b_x+2;b_go.setLocation(b_x,b_y);} } } public void keyReleased(KeyEvent e){} public void keyTyped(KeyEvent e){} public void actionPerformed(ActionEvent e) { b_go.setBounds(22,45,20,20); b_x=b_go.getBounds().x;b_y=b_go.getBounds().y;b_go.requestFocus() ;} }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -