问答题本程序中,当鼠标在窗口上单击左键时,则以单击的点为圆心画一个小圆,如果单击右键,则以单击的点为中心画一个正方形,当鼠标离开窗口时,窗口上的所有图形将清除掉,如图所示。
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(100,100);
addMouseListener(this);
}
public void paint(GraPhics g)
{ if(left==1)
{ g.drawOval(x-10,y-10,20,20);
}
else if(right==1)
{ g.drawRect(x-8,y-8,16,16);
}
}
public void mousePressed(MouseEvent e)
{ x=e.getX(); y=e.getY();
if(e.getModifiers()==______)
{ left=l;right=-1;
repaint();
}
else if(e.getModifiers()==______)
{ 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 exam_92
{ public static void main(String args[])
{ Frame f=new Frame();
f.setTitle("exam_92");
f.setBounds(100,100,200,200);f.setVisible(true);
f.addWindowListener(new WindowAdapter()
{public void windowClosing(WindowEvent e]
{System.exit (0);
}
});
f.add(new MyCanvas(),BorderLayout. CENTER);
f.validate();
}
}