import java.awt.* ; import java.awt.event.*; public class naixin { /** * @param args */ public static void main(String[] args) { new MyFrame("P212_16 The Fixed Version Of EG.7.33"); } } class MyFrame extends Frame implements KeyListener{ Button b[]=new Button[8]; int x,y; Component component1=null; boolean move=false; Rectangle rect=null; int btnum=7; Label lab_bool=new Label("");// Button button=null; String strcom=null; KeyEvent keyEvent1=null; MyFrame(String frameTitle){ super(frameTitle); setLayout(new FlowLayout()); add(lab_bool);// for(int i=0;i<8;i++){ b[i]=new Button(""+i); b[i].addKeyListener(this); add(b[i]); } addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0); } }); setBounds(10,10,300,300); setVisible(true); validate(); } public void checkMove(){ button=(Button)keyEvent1.getSource(); x=button.getBounds().x; y=button.getBounds().y; strcom=button.getActionCommand(); rect=button.getBounds(); for(btnum=0;btnum<=7;btnum++){ if(btnum==Integer.parseInt(strcom)){ move=false; lab_bool.setText(String.valueOf(move)); continue; } else if(rect.intersects(b[btnum].getBounds())){ move=false; lab_bool.setText(String.valueOf(move)); } else{ move=true; lab_bool.setText(String.valueOf(move)); } } } public void keyPressed(KeyEvent e){ keyEvent1=e; checkMove(); if(e.getKeyCode()==KeyEvent.VK_UP){ if(move){ y=y-2; if(y<=0)y=0; button.setLocation(x,y); } } else if(e.getKeyCode()==KeyEvent.VK_DOWN){ if(move){ y=y+2; if(y>=300)y=300; button.setLocation(x,y); } } else if(e.getKeyCode()==KeyEvent.VK_LEFT){ if(move){ x=x-2; if(x<=0)x=0; button.setLocation(x,y); } } else if(e.getKeyCode()==KeyEvent.VK_RIGHT){ if(move){ x=x+2; if(x>=300)x=300; button.setLocation(x,y); } } } public void keyTyped(KeyEvent e){} public void keyReleased(KeyEvent e){} }