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() 这个怎么弄成一个事件监听类.. 我说的不详细 如果各位还有别的简单的方法也行,总之就是不能在一个类里 (麻烦各位在写上详细的过程)
辛苦大家了!!!

解决方案 »

  1.   

    再写一个类,继承WindowAdapter,在XN这个类addWindowListener方法里面new一个你写的这个类的实例就可以了。比如这样 class MyWindowAdapter extends WindowAdapter{
          public void windowClosing(WindowEvent e)   {  
                  System.exit(0);  
               }  
    }
    然后再addWindowListener(new MyWindowAdapter());就可以了
      

  2.   

    直接使用Eclipse的Refactor工具,你的问题将不是问题
      

  3.   


    我的意思是像class Yuan extends KeyAdapter
    {    
    public void keyPressed(KeyEvent e) {
      
    if(e.getKeyCode()==KeyEvent.VK_DOWN){
    y+=2;
    System.out.print("q");
    }else if(e.getKeyCode()==KeyEvent.VK_UP){
    y-=2;
    }else if(e.getKeyCode()==KeyEvent.VK_LEFT){
    x-=2;
    }else if(e.getKeyCode()==KeyEvent.VK_RIGHT){
    x+=2;
    }
    repaint();
    }
    }这个单独的一个类然后画圆 让圆在框里上下左右移动 所以 圆是一个类 上下左右这个又是一个类 然后在写一个主类调用这个些个类 (我自己都绕懵了)
      

  4.   

    楼主想要的是mvc分开吧,一个单独的rectanglec的object class表示方块的x,y,一个jpanel 坐画板,paint()从这个方块object拿x,y来repaint(), 一个keyboardlistener,来执行对方块x,y的值的加减