日期:2014-05-20  浏览次数:20592 次

求各位帮忙 解决一下!!!
import java.awt.*; 
import java.awt.event.*;
public class XN extends Frame
{
    int x=50;
    int y=50;
public void Kuang(){
this.setTitle("NN");
this.setSize(600,400);
this.setVisible(true); 
this.setResizable(true);
     addWindowListener(new WindowAdapter()  { 
 public void windowClosing(WindowEvent e)   {  
      System.exit(0);  
   }  
});
 
addKeyListener(new KeyAdapter()  {  
  public void keyPressed(KeyEvent e)   { 
int k = e.getKeyCode();    
if(k == KeyEvent.VK_UP)  
          {      y-=10;   
 
    }  else if(k == KeyEvent.VK_DOWN)    
{   
        y+=10;    
}     else if(k == KeyEvent.VK_LEFT)   
    {    
  x-=10;   
}     else if(k == KeyEvent.VK_RIGHT)  
{    
                 x+=10;  
 }    
repaint();  
}   
}); 
}
public void paint(Graphics g) {  
g.setColor(Color.RED);  
g.fillOval(x,y,30,30); 
   }
public static void main(String[] args){
XN x1=new XN();
x1.Kuang();
}
}

请各位帮忙分解成三个类 小圆是单独一个类 然后XN是一个类(也就是Frame外框)一个类 最重要的就是addKeyListener(new KeyAdapter() 这个怎么弄成一个事件监听类.. 我说的不详细 如果各位还有别的简单的方法也行,总之就是不能在一个类里 (麻烦各位在写上详细的过程)
辛苦大家了!!!

------解决方案--------------------
再写一个类,继承WindowAdapter,在XN这个类addWindowListener方法里面new一个你写的这个类的实例就可以了。比如这样 class MyWindowAdapter extends WindowAdapter{