当前位置: 代码迷 >> Eclipse >> java swing获取panel中所画折线的端点座标
  详细解决方案

java swing获取panel中所画折线的端点座标

热度:66   发布时间:2016-04-23 00:01:42.0
java swing获取panel中所画折线的端点坐标
如题,使用java swing做画图程序,画出了直角折线,但是如何批量记录每一条折线的转折点坐标,比如我画了一个流程图,要记录每一条连接线的起始点、终止点和中间转折点的坐标,哪位大神给点思路,我最近都搞乱了!!!在此谢过!!!
------解决思路----------------------
是用鼠标点击,然后连线的那种程序吗?你可以用ArrayList<Point>记录一条折线的各点坐标,如果有多条折线,那就再套一层ArrayList,就是用ArrayList<ArrayList<Point>>形式记录整个图。如果你还想记录线宽、颜色什么的,就自己定义一个折线类,比如叫BrokenLine,类里面用ArrayList<Point>记录折线上各点,用两个属性记录颜色、线宽,还可以增加其他属性,以及属性的操作方法,整个图就用ArrayList<BrokenLine>来记录。
------解决思路----------------------
看你表达的意思,你需要的是由起点和终点定义的一条拐直角的线,如果我没理解错得话,下面的类应该可以凑合着用,如果是一组点,在相邻两点间连线段形成的折线,这个类就不适用了。

import java.awt.Point;
/**
 * 简单的折线类。可以扩展线宽、颜色等属性。
 * @author zys59 三仙半(QQ:597882752)
 *
 */
public class BrokenLine {
/**
 * 起点
 */
private Point start;
/**
 * 终点
 */
private Point end;
/**
 * 绘制折线时,先绘制垂直线
 */
private boolean isVerticalPriority;

public BrokenLine(Point start, Point end, boolean isVerticalPriority) {
super();
this.start = start;
this.end = end;
this.isVerticalPriority = isVerticalPriority;
}
}
  相关解决方案