Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JgraphX如何使一条边将一个顶点连接到另一条边(而不是另一个顶点)?_Java_Swing_Jgraphx - Fatal编程技术网

Java JgraphX如何使一条边将一个顶点连接到另一条边(而不是另一个顶点)?

Java JgraphX如何使一条边将一个顶点连接到另一条边(而不是另一个顶点)?,java,swing,jgraphx,Java,Swing,Jgraphx,我希望能够使用一条边连接一个顶点和另一条边,这条边连接两个其他顶点。我想相应地更改代码,以便能够从用户界面进行此连接,就像您对两个顶点所做的那样 为了说明我的目的:我想让箭头顶端的绿色正方形变成蓝色,就像它底部的正方形一样,这表明已经建立了连接 我已经检查了与创建连接和有效终端相关的文档和代码,但我无法实现我需要的行为,即将边缘设置为连接中的有效终端/有效目标的能力。任何帮助都将不胜感激 我不确定在尝试使边缘成为有效的目标/源时,是否应该在这里查看mxGraph.java类 public boo

我希望能够使用一条边连接一个顶点和另一条边,这条边连接两个其他顶点。我想相应地更改代码,以便能够从用户界面进行此连接,就像您对两个顶点所做的那样

为了说明我的目的:我想让箭头顶端的绿色正方形变成蓝色,就像它底部的正方形一样,这表明已经建立了连接

我已经检查了与创建连接和有效终端相关的文档和代码,但我无法实现我需要的行为,即将边缘设置为连接中的有效终端/有效目标的能力。任何帮助都将不胜感激

我不确定在尝试使边缘成为有效的目标/源时,是否应该在这里查看mxGraph.java类

public boolean isValidSource(Object cell)
{
    return (cell == null && allowDanglingEdges)
                    || (cell != null 
                           && (!model.isEdge(cell) || isConnectableEdges()) && isCellConnectable(cell));

}

更新:我能够在代码中连接两条边,使用图形的insertEdge方法。然而,我仍在努力在用户界面中实现这种行为。

我怀疑要解决您的问题,要么需要我们打破图论和jgraphx的基本规则,要么需要您调整您的目标。如果你能解释一下你需要这种行为的理由,以及你是否能接受任何替代方案,这会有所帮助

在数学中,一条边只能将两个顶点连接在一起或将一个顶点连接到自身。不能使用边将边连接到顶点,jgraphx似乎遵循此设计

如果您更关心图形的流而不是其数学表示,则可以在边相交的所需位置添加新顶点,然后将相应的边连接到相应的顶点。我怀疑这就是你想要的,或者至少是你最好的选择

如果您绝对需要您描述的行为,那么如果您重新定义您的术语并应用一些严肃的抽象和大量的编码,这是可能的。您可能需要在jgraphx中手动实现一个新对象,该对象可以同时作为顶点和边,并定义所有这些组件之间的关系,等等。我不鼓励这样做,jgraphx似乎没有提供替代方案


如果你能帮助它,不要改变图论来处理你的设计。将您的设计更改为使用图论。祝你好运。

你可以试试解决办法: 假设你有顶点u,v和t,还有一条连接u,v的边

删除边u、v 添加不可见顶点x 添加边u->x 添加边x->v 添加边t->x
考虑到,你必须从边缘u,x,也许t上移除装饰器,x、

我之所以需要这种行为,是因为我想实现一个扩展的论证框架,该框架由参数-顶点和攻击-边组成,这些边可以很容易地以图形形式表示和使用,从而允许参数顶点攻击另一种攻击。我希望可以更改一些条件,以允许边连接到其他边。花了数小时阅读文档和代码,试图找到这个。更新:我能够使用图中的insertEdge方法连接代码中的顶点和边。这让我希望也许不需要一个全新的班级。然而,我仍然不知道如何在用户界面中引入这种行为。