windflowerxj 发表于 2008-9-2 12:53

谁能告诉我这个程序中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();
                        }
                }
        [color=Red]public void paint(Graphics g)
                {
                g.fillOval(x, y, 3, 3);
                }[/color]       
         public static void main(String args[])
                {
                DragEvent app = new DragEvent();
                app.addWindowListener(new MyWindowListener());
                }
        }

这个程序中我实在是看不出来paint()函数是在那儿被调用的!各位大大请帮忙看看!

[[it] 本帖最后由 windflowerxj 于 2008-9-2 12:54 编辑 [/it]]

汝珂 发表于 2008-9-2 23:33

这个类本身没有调用paint()函数吧.....我没发现有调用得地方

windflowerxj 发表于 2008-9-3 10:10

是啊,我也看不出来,但是这个程序运行正常,其中paint()函数的画实心圆的功能很正常啊,所以我很不明白,另外我附上程序中用到的类myWindowListener:
//===============MyWindowListener.java===========
import java.awt.event.*;
import java.awt.*;
public class MyWindowListener extends WindowAdapter
{
        public void windowClosing(WindowEvent e)
        {
                System.exit(1);
        }
}
大家来帮忙看看吧!

汝珂 发表于 2008-9-3 10:29

对了,看代码中得参数名是不是设置有监听器?SERVLET有监听器,J2SE我不清楚
是不是监听器中做得操作?

windflowerxj 发表于 2008-9-3 11:23

问题就是这个函数不在侦听器里呀,如果在侦听器类内部我当然可以理解,但是现在这样我就想不通了!

页: [1]

编程论坛