读书人

求诸位帮忙 解决一下!

发布时间: 2013-09-06 10:17:17 作者: rapoo

求各位帮忙 解决一下!!!

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{


public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
然后再addWindowListener(new MyWindowAdapter());就可以了
[解决办法]
直接使用Eclipse的Refactor工具,你的问题将不是问题
[解决办法]
楼主想要的是mvc分开吧,一个单独的rectanglec的object class表示方块的x,y,一个jpanel 坐画板,paint()从这个方块object拿x,y来repaint(), 一个keyboardlistener,来执行对方块x,y的值的加减

读书人网 >J2SE开发

热点推荐