大家都知道GEF中连线上的label默认是在线的中间,一旦要连很多线的时候显示label就是棘手的问题了,所以啊就要求可以移动label避免重叠啊
三个步骤
第一步:写个类继承MidpointLocator
public class MidpointOffsetLocator extends MidpointLocator {
private Point offset;
public MidpointOffsetLocator(Connection c, int i) {
super(c, i);
offset = new Point(0, 0);
}
@Override
protected Point getReferencePoint() {
Point point = super.getReferencePoint();
return point.getTranslated(offset);
}
public Point getOffset() {
return offset;
}
public void setOffset(Point offset) {
this.offset = offset;
}
}
第二步:添加Label到connection
connection.add(conditionLabel, new MidpointOffsetLocator(connection, 0));
第三步:给Label添加事件
conditionLabel.addMouseListener(new MouseListener(){
public void mouseDoubleClicked(MouseEvent me){
}
public void mousePressed(MouseEvent me){
anchorX = me.x;
anchorY = me.y;
me.consume();
}
public void mouseReleased(MouseEvent me){
me.consume();
}
});
conditionLabel.addMouseMotionListener(new MouseMotionListener(){
public void mouseDragged(MouseEvent me){
dx += me.x - anchorX;
dy += me.y - anchorY;
anchorX = me.x;
anchorY = me.y;
Object constraint = connection.getLayoutManager().getConstraint(conditionLabel);
if(constraint instanceof MidpointOffsetLocator){
((MidpointOffsetLocator) constraint).setOffset(new Point(dx,dy));
conditionLabel.revalidate();
}
me.consume();
}
@Override
public void mouseEntered(MouseEvent me) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent me) {
// TODO Auto-generated method stub
}
@Override
public void mouseHover(MouseEvent me) {
// TODO Auto-generated method stub
}
@Override
public void mouseMoved(MouseEvent me) {
// TODO Auto-generated method stub
}
});
经过上面三个步骤就大功告成了
分享到:
相关推荐
jtopo本身的连线比较生硬,刻板,在项目中经常要求“动感”,博主在jtopo0.4.8的基础上通过自主绘制的方式,完美的实现了jtopo连线的脉冲动画效果,还附带了小实例,如果有不解的地方,欢迎大家留言,欢迎来打脸。
实现在画布中连线的动画的效果,可以控制连线动画的速度,连线的颜色及线宽!!!!!!!!!!!11!!!!!
高德地图将带有自定义的图片的marker用连线连起来
goole map动态连线 javaScript 异步调用C# goole map动态连线 javaScript 异步调用C#
jtopo扩展,各种连线
canvas随机生成圆点,根据点与点之间的距离进行连线。适合人群:对js和canvas有一定的了解。
基于canvas实现js、html连线,可左右连线,也可上下连线,html连线,
unity连线消除游戏源码-linkeraseGameunity连线消除游戏源码-linkeraseGameunity连线消除游戏源码-linkeraseGameunity连线消除游戏源码-linkeraseGameunity连线消除游戏源码-linkeraseGameunity连线消除游戏源码-...
Unity LineRenderer 连线功能示例工程,Unity版本2020.3.16
jsPlumb是一个强大的JavaScript连线库,它可以将html中的元素用箭头、曲线、直线等连接起来,适用于开发Web上的图表、建模工具等。它同时支持jQuery+jQuery UI、MooTools和YUI3这三个JavaScript框架,十分强大
HTML5 canvas背景连线动画代码,canvas绘制圆点连线动画,圆点线连接网页背景动画。
kx连线图显示隐藏工具,非常简单,很好用。
html连线题实现,可以在前台轻松做到网站的连线效果
里面有好多个Demo,适应与不同场合.2D,3D,画线,模拟物体运动轨迹,编辑路径,还有X光透视 操作简单,方便学习 如果没有积分,可以私聊,看到会发给你(可能回复的不是很及时,抱拳了)
3.控件连线在屏幕上随着手势滑动触碰到连接则断开连线; 4.控件拖动时如拖动到其他控件的范围位置之内则弹回原来的位置且控件的连线也恢复原来的位置(控件在屏幕上不能重叠); 5.控件放置时如有控件之间的连线...
连线动画样例
jsplumb实现表格字段连线适用于数据库表设计,清晰展现各表关系;支持切换连线样式;
Android studio demo,可运行,实现marker覆盖物之间的连线,静态动态两种选择
百度地图 多点连线 轨迹移 动
在线考试连线题 js demo