newl2.add(endPoint2);
break;
case Rectangle:
Point endPoint3 = new Point(e.getX(),e.getY());
int n3 = rectangleDatas.size() - 1;
Vector
newl3.add(endPoint3);
break;
}
repaint(); //刷新画面
}
});
addMouseMotionListener(new MouseMotionAdapter()
{
public void mouseDragged(MouseEvent e)
{
switch(drawType)
{
case FreeDom:
Point p = new Point(e.getX(),e.getY());
int n = FreedomDatas.size()-1; //拿到最后一条线的位置
Vector
lastLine.add(p);
break;
case Line:
//直线
break;
case Ellipse:
//椭圆
break;
case Rectangle:
//矩形
break;
}
//repaint(); //刷新画面
}
});
}
@Override
public void paint(Graphics g)
{
g.clearRect(0, 0, getWidth(), getHeight());
g.setColor(lineColor);
Graphics2D g_2D = (Graphics2D)g;
BasicStroke stroke = new BasicStroke(lineWidth,BasicStroke.CAP_ROUND,BasicStroke.JOIN_ROUND);
g_2D.setStroke(stroke);
switch(drawType)
{
case FreeDom:
Vector
Point s,e;
int i,j,m;
int n = FreedomDatas.size();
for(i=0;i
v = FreedomDatas.get(i);
m = v.size()-1;
for(j=0;j
s = (Point)v.get(j);
e = (Point)v.get(j+1);
g.drawLine(s.x, s.y, e.x, e.y);
}
}
break;
case Line:
//直线
int ls = lineDatas.size();
for(int li=0;li
Vector
Point startPoint = twoPoints.get(0);
Point endPoint = twoPoints.get(1);
g.drawLine(startPoint.x,startPoint.y,endPoint.x,endPoint.y);
}
break;
case Ellipse:
//椭圆
int es = ellipseDatas.size();
for(int ei=0;ei
Vector
Point startPoint = twoPoints.get(0);
Point endPoint = twoPoints.get(1);
int width = Math.abs(endPoint.x - startPoint.x);
int height = Math.abs(endPoint.y - startPoint.y);
g.drawOval(startPoint.x,startPoint.y,width,height);
}
break;
case Rectangle:
//矩形
int rs = rectangleDatas.size();
for(int ri=0;ri
Vector