关键字:Draw2d 、Decoration 、 箭头
为连线增加箭头。
public class HelloWorld2 {
public static void main(String args[]) {
Shell shell = new Shell();
shell.setText("Draw2d Hello World");
shell.setSize(200, 200);
shell.open();
// create content 4 shell.
createContent4Shell(shell);
while (!shell.isDisposed ()) {
if (!Display.getDefault().readAndDispatch ())
Display.getDefault().sleep ();
}
}
private static void createContent4Shell(Shell shell) {
Panel rootFigure = new Panel();
rootFigure.setLayoutManager(new XYLayout());
IFigure figure1 = new Ellipse();
Ellipse figure2 = new Ellipse();
// --------------------------------------------------------
// add connection
PolylineConnection connection = new PolylineConnection();
connection.setSourceAnchor(new ChopboxAnchor(figure1));
connection.setTargetAnchor(new EllipseAnchor(figure2));
// --------------------------------------------------------
// add Decoration to Connection
connection.setSourceDecoration(new PolylineDecoration());
// connection.setSourceDecoration(new PolygonDecoration());
rootFigure.add(figure1,new Rectangle(10,10,60,30));
rootFigure.add(figure2,new Rectangle(70,70,90,90));
rootFigure.add(connection);
LightweightSystem lws = new LightweightSystem(shell);
lws.setContents(rootFigure);
}
}
将 箭头 改为实心的。
// --------------------------------------------------------
// add Decoration to Connection
// connection.setSourceDecoration(new PolylineDecoration());
connection.setSourceDecoration(new PolygonDecoration());
当然我们也可以定制箭头。
// --------------------------------------------------------
// add Decoration to Connection
// connection.setSourceDecoration(new PolylineDecoration());
PolygonDecoration decoration = new PolygonDecoration();
PointList decorationPointList = new PointList();
decorationPointList.addPoint(0,0);
decorationPointList.addPoint(-2,2);
decorationPointList.addPoint(-4,0);
decorationPointList.addPoint(-2,-2);
decoration.setTemplate(decorationPointList);
connection.setSourceDecoration(decoration);