Draw2d 连线四 箭头 Decoration

本文介绍如何使用SWT Draw2D库为连线添加不同类型的箭头装饰,包括预定义的箭头样式及自定义箭头形状的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关键字: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);

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值