谁能告诉我这个程序中paint()函数是如何被调用的?
//=====================DragEvent.java=================import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class DragEvent extends JFrame
{
private int x = -1 , y = -1;
public DragEvent()
{
super("DragEvent.java:鼠标事件测试");
Container c = getContentPane();
c.setLayout(new FlowLayout());
c.add(new Label("拖曳鼠标"),BorderLayout.SOUTH);
addMouseMotionListener(new DragListener());
setSize(400,200);
setVisible(true);
}
class DragListener extends MouseMotionAdapter
{
public void mouseDragged(MouseEvent e)
{
x = e.getX();
y = e.getY();
repaint();
}
}
public void paint(Graphics g)
{
g.fillOval(x, y, 3, 3);
}
public static void main(String args[])
{
DragEvent app = new DragEvent();
app.addWindowListener(new MyWindowListener());
}
}
这个程序中我实在是看不出来paint()函数是在那儿被调用的!各位大大请帮忙看看!
[[it] 本帖最后由 windflowerxj 于 2008-9-2 12:54 编辑 [/it]]
----------------解决方案--------------------------------------------------------
这个类本身没有调用paint()函数吧.....我没发现有调用得地方
----------------解决方案--------------------------------------------------------
是啊,我也看不出来,但是这个程序运行正常,其中paint()函数的画实心圆的功能很正常啊,所以我很不明白,另外我附上程序中用到的类myWindowListener:
//===============MyWindowListener.java===========
import java.awt.event.*;
import java.awt.*;
public class MyWindowListener extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
System.exit(1);
}
}
大家来帮忙看看吧!
----------------解决方案--------------------------------------------------------
对了,看代码中得参数名是不是设置有监听器?SERVLET有监听器,J2SE我不清楚
是不是监听器中做得操作?
----------------解决方案--------------------------------------------------------
问题就是这个函数不在侦听器里呀,如果在侦听器类内部我当然可以理解,但是现在这样我就想不通了!
----------------解决方案--------------------------------------------------------