一个画图程序,帮忙看看
import java.awt.*;
import java.awt.event.*;
class TestDrawLine extends Frame
{
TestDrawLine(String title)
{
super(title);
setSize(400,300);
MyPanel mp=new MyPanel();
add(mp);
}
public static void main(String args[])
{
TestDrawLine tf=new TestDrawLine("Test Draw Line");
tf.setVisible(true);
}
}
class MyPanel extends Panel implements MouseListener, MouseMotionListener
{
Point pS,pE;
boolean btnPressed;
MyPanel()
{
pS=new Point(0,0);
pE=new Point(0,0);
btnPressed=false;
addMouseListener(this);
addMouseMotionListener(this);
}
public void mouseClicked(MouseEvent e) {
}
public void mousePressed(MouseEvent e) {
if(e.getButton()==MouseEvent.BUTTON1)
{
btnPressed=true;
pS.x=e.getX();
pS.y=e.getY();
pE.x=e.getX();
pE.y=e.getY();
}
}
public void mouseReleased(MouseEvent e) {
btnPressed=false;
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public void mouseDragged(MouseEvent e) {
if(btnPressed)
{
pS.x=pE.x;
pS.y=pE.y;
pE.x=e.getX();
pE.y=e.getY();
repaint();
}
}
public void mouseMoved(MouseEvent e) {
}
public void update(Graphics g)
{
g.drawLine(pS.x,pS.y,pE.x,pE.y);
}
}
程序没任何问题:
这一段:
public void mouseDragged(MouseEvent e) {
if(btnPressed)
{
pS.x=pE.x;
pS.y=pE.y;
pE.x=e.getX();
pE.y=e.getY();
repaint();
当鼠标松开的时候,把pE.x赋给pS.x,就是把终点的坐标赋给起点的坐标,那不是把起点的坐标覆盖了吗?最后出来的只是一个点?这边我不太理解,请大家帮忙解释一下!