JAVA update()方法 求详解

Python018

JAVA update()方法 求详解,第1张

分类: 电脑/网络 >>程序设计 >>其他编程语言

问题描述:

如例题

import java.awt.*

import java.awt.event.*

class MyCanvas extends Canvas implements MouseListener

{

int left=-1,right=-1

int x=-1,y=-1

MyCanvas()

{

setSize(200,200)

setBackground(Color.pink)

addMouseListener(this)

}

public void paint(Graphics g)

{

if(left==1)

{

g.drawString("●",x,y)

}

else if(right==1)

{

g.drawString("○",x,y)

}

}

public void mousePressed (MouseEvent e)

{

x=e.getX()

y=e.getY()

if(e.getModifiers()==InputEvent.BUTTON1_MASK)

{

left=1

right=-1

repaint()

}

else if(e.getModifiers()==InputEvent.BUTTON3_MASK)

{

right=1

left=-1

repaint()

}

}

public void mouseReleased(MouseEvent e){}

public void mouseEntered(MouseEvent e){}

public void mouseExited(MouseEvent e)

{

left=-1

right=-1

repaint()

}

public void mouseClicked(MouseEvent e){}

public void update(Graphics g)

{

if(left==1||right==1)

{

paint(g)

}

else

{

super.update(g)

}

}

}

public class Shubiaoshijian

{

public static void main(String args[])

{

Frame f=new Frame()

f.setBounds(100,100,300,300)

f.setVisible(true)

f.addWindowListener(new WindowAdapter()

{

public void windowClosing(WindowEvent e)

{

System.exit(0)

}

})

f.setLayout(new FlowLayout())

f.add(new MyCanvas())

f.validate()

}

}

中的这一部分

public void update(Graphics g)

{

if(left==1||right==1)

{

paint(g)

}

else

{

super.update(g)

}

}

super.update

详细介绍下到底是什么用处的作用

因为这个地方导致整个程序有些不解

解析:

如果left or right !=1那么面板清空!就这个作用!

传递一个变量的话

ps="Update shangwang set 上网时间='"+m+"'+上网时间 where num=1"

ps="Update shangwang set 上网时间='"+m+"'+0 where num=0"

repaint()方法用于重绘组件,该方法有下面四种形式:

1。public void repaint()

2。public void repaint(long tm)

//指定调用update方法之前等待的最大毫秒数tm

3。public void repaint(int x,int y,int width,int height)

//重绘组件的指定矩形区域

4。public void repaint(ling tm,int x,int y,int width,int height)

repaint方法不总是马上执行,Java虽然会尽可能快的执行repaint,当Applet运行在较慢的平台上或计算机较忙时,应该考虑使用第2或4种repaint方法,指定在多长时间内必须执行repaint,否则就放弃。

Update()方法用于更新组件,AWT调用该方法以响应对repaint()的调用,在调用update()或paint()之前,组件的外观将不会发生改变。它更新组件的步骤为:通过充填组件的背景色来清除该组件,然后,设置图形上下文(其原点为该组件的左顶点)的颜色为该组件的前景色,最后,调用paint方法完整地重绘该组件。该方法的原型为:

Public void update(Graphics g)

Paint()方法用于绘制组件,当需要绘制组件的内容时调用该方法。该方法的原型为:

Public void paint(Graphics g)