前面写了个连线上显示文字,直接用的label,那样确实简单,但有的时候还是需要独立出来,这个时候就要有单独的控制器,原理很简单:即文字是连线的子节点,然后将文字添加到连线上面,就OK了;实现父子关系很简单:在连线控制器中添加getChildren方法就OK了,然后将文字绑定到连线上面就是刷新的时候确定连线的上的坐标然后绑定Label就可以了,直接上代码:
protected void refreshVisuals() {
// String text = getLabelWrapper().getText();
Label label = (Label) getFigure();
String text = label.getText();
if (text == null || text.equals("")) {
text = ((LabelModel) getModel()).getText();
}
//
Polyline polyline = (Polyline) ((CustomAbstractConnectionEditPart) getParent()).getConnectionFigure();
Point location = ((LabelModel) getModel()).getLocation();
if (location == null) {
location = calculateInitialLocation(polyline, text);
((LabelModel) getModel()).setLocation(location);
}
label.setText(text);
LabelConstraint constraint = new LabelConstraint(text, location, polyline);
((GraphicalEditPart) getParent()).setLayoutConstraint(this, getFigure(), constraint);
}
private Point calculateInitialLocation(Polyline polyline, String text) {
Dimension textDimension = FigureUtilities.getTextExtents(text, figure.getFont());
return new Point(-(textDimension.width + 5), -(textDimension.height + 5));
}private class LabelConstraint implements Locator {
String text;
Point relativeLocation;
Polyline polyline;
public LabelConstraint(String text, Point location, Polyline polyline) {
this.text = text;
this.relativeLocation = location;
this.polyline = polyline;
}
public void relocate(IFigure figure) {
Dimension minimum = FigureUtilities.getTextExtents(text, figure.getFont());
figure.setSize(minimum);
Point midPoint = polyline.getPoints().getMidpoint();
Point newLocation = relativeLocation.getCopy();
newLocation.translate(midPoint);
figure.setLocation(newLocation);
}
}
分享到:
相关推荐
通过点击圆形的连线按钮进行游戏,直至全部连线正确,答题完毕。可通过计时开展竞赛等游戏教学活动。
svg.js和jquery实现连线功能,(html网页)。svg.js和jquery实现连线功能。
可做为答题app的连线模块使用
当jtopo两个节点间有多条连线时,连线的路径会重合,特别是有正反方向的两条连线时,问题尤为严重,附件彻底完美解决了这一问题,如果没有解决,你来打我脸,欢迎大家留言。
连线涂色图字母、数字.doc
百度地图显示多点连线+数字标注 非常实用,我项目已经用了。大家用的好 一定要评论哦。
易语言连线游戏源码.zip
使用modeler设计器,流程图连线名称是有显示的,但是运行结果却没显示。下载本jar包直接替换原来的jar包,重新启动项目即可
连线涂色图(字母、数字)参考.pdf
auto CAD 让连线更简便的程序 可以批量连线,比CAD默认的连线更人性化
小学一年级识字连线.doc
幼儿动物图案数字连线图.doc
基于jqueryjsPlumb实现的html5的数字圆形图连线
学前儿童练习-数字1-10连线.docx
58常用硬笔练字——控笔运笔连线训练硬笔专用字帖.pdf
activiti5.22 流程设计器绘画的流程图条件线上的字不显示 下载该jar包 替换对应的maven仓库的jar包就可以了
电脑接口和连线图解,清晰的图像和文字讲解,希望能帮到您!
· 第1步:单击工具栏中保存连线值工具;再单击工具选板中的探针数据工具...移去探针不影响探针编号的增长,即新设置的探针编号始终为上的探针编号加1。 图3 设置多个探针 第4步:在探针数据显示框中,单击鼠标