问题描述:
如例题
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)