關鍵字:Draw2d,連線,ChopboxAnchor? EllipseAnchor
連線一提到的連線其實并沒有連接到圖形的邊框上,這個問題主要取決于錨點(Anchor)。
如果將代碼中的橢圓改為正圓就很容易看出來了。
?
public class HelloWorld2 { public static void main(String args[]) { Shell shell = new Shell(); shell.setText("Draw2d Hello World"); shell.setSize(400, 400); 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(); IFigure figure2 = new Ellipse(); // IFigure figure2 = new Triangle(); // -------------------------------------------------------- // add connection PolylineConnection connection = new PolylineConnection(); connection.setSourceAnchor(new ChopboxAnchor(figure1)); connection.setTargetAnchor(new ChopboxAnchor(figure2)); // add connection // -------------------------------------------------------- rootFigure.add(figure1,new Rectangle(10,10,60,30)); rootFigure.add(figure2,new Rectangle(80,90,60,60)); rootFigure.add(connection); LightweightSystem lws = new LightweightSystem(shell); lws.setContents(rootFigure); } }
?
?
?
?這里的關鍵的就是錨點,采用了ChopboxAnchor 的方法,ChopboxAnchor 的返回的是和矩形邊框的交接點,而不是和所畫圖形的交點。解決這個問題就要采用EllipseAnchor定錨點的方法了。
將代碼的這個改一下就行了。
connection.setTargetAnchor(new EllipseAnchor(figure2));
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
