Tag: jung

在Jung中显示popup messgae

我创建了一个由多个顶点和边组成的网络。 当我将鼠标移动到该顶点时,如何在顶点上显示弹出消息?

改进JUNG图的渲染

我正在使用jung直观地显示大型数据集(1000个节点)但是当我放大或缩小或移动节点时系统变得非常迟缓。 反正有没有改进JUNG图形的渲染?

Jung着色顶点有价值

我现在被Java库Jung困住了。 我显示顶点和边,只有我找不到顶点着色的任何函数,我需要顶点的值,而不是鼠标。 import edu.uci.ics.jung.algorithms.layout.FRLayout; import edu.uci.ics.jung.algorithms.layout.Layout; import edu.uci.ics.jung.graph.Graph; import edu.uci.ics.jung.visualization.BasicVisualizationServer; import edu.uci.ics.jung.visualization.decorators.PickableVertexPaintTransformer; import edu.uci.ics.jung.visualization.decorators.ToStringLabeller; import edu.uci.ics.jung.visualization.renderers.DefaultVertexLabelRenderer; import edu.uci.ics.jung.visualization.renderers.Renderer.VertexLabel.Position; import java.awt.BasicStroke; import java.awt.Color; import java.awt.Dimension; import javax.swing.JFrame; import org.apache.commons.collections15.Transformer; import org.apache.commons.collections15.functors.ConstantTransformer; public class Design { public Graph g; public Design() { this.g = ProjectTools.readNet(“SmallTown.net”); } public static void main(String[] args) { Design sgv = new Design(); […]

如何在JUNG中添加具有相同标签(但不同端点)的两条边?

如何添加具有相同标签但不同端点的两条边? 例如,我想添加两个具有相同标签’label1’的边,一个从顶点v-1到顶点v-2,另一个从顶点v-2到v-3。 部分代码是: g.addEdge(“label1″,”v-1″,”v-2”); g.addEdge(“label1″,”v-2″,”v-3”); 但是JUNG不允许添加具有相同标签的两条边。 它给出了一个错误: edge label1已存在于此图中,端点为[v-1,v-2],无法添加端点[v-2,v-3] 如何添加具有相同标签的两条边? 谢谢。 编辑: 我刚刚读到有一种方法可以为边缘分配权重值,即使用EdgeWeightLabeller ,但这些权重值应该是整数。 所以它似乎没有解决问题。

如何使用Jung(java库)以编程方式平移VisualizationViewer?

经过大量的调查,我无法找到以下问题的方便答案:如何用Jung以编程方式平移VisualizationViewer? 我有一个GUI,其中包含我的图形顶点列表,我希望双击列表中的一个项目(即节点描述),对我单击的节点执行VisualizationViewer的“居中操作”。 如何编码这样的行为? 看起来很简单,但我找不到方便的答案。 如果有人可以提供帮助,谢谢! njames

java中的pagerank实现

我正在寻找pagerank算法的java实现。

如何在我的java程序中集成stanford解析器软件?

我必须在java中开发一个项目,该项目使用斯坦福解析器来分隔句子,并且必须生成一个图表来显示句子中单词之间的关系。 例如:俄亥俄州位于美国。 输出: 图像显示图形。 但输出不必相同,但它必须显示图形forms的单词之间的关系。 可以使用Jgraph,Jung生成图表。 但最初我必须将解析器软件集成到我的程序中。 那么如何整合解析器?

将JUNG图写入图像:无法可靠地呈现完整的图形

我一直在使用JUNG来可视化一些简单的图形,我想将它们中的几个写入PNG文件。 不幸的是,图像经常在图形完成绘制之前呈现出来,这意味着我得到了不完整的图形 – 也就是说,只绘制了一个边缘或节点的图形 – 大约一半的时间。 渲染到屏幕工作正常,这是我为什么如此困惑的部分原因。 正如您将在下面看到的,我尝试了几种解决方法,但它们没有帮助。 知道我正在使用的basicVisualizationServer不会直接绘制对BufferedImage有用的东西可能很有用 – 我尝试时只得到一个黑色图像。 谢谢! public void writeImage(String filename) { Layout layout = new CircleLayout(jungGraph); layout.setSize(innerSize); bvs = new BasicVisualizationServer(layout); float strokeWidth = 8f; bvs.getRenderContext().setVertexShapeTransformer(new ConstantTransformer(new Ellipse2D.Float(-24,-24,48,48))); bvs.getRenderContext().setArrowDrawPaintTransformer(new ConstantTransformer(Color.black)); bvs.getRenderContext().setEdgeStrokeTransformer(new ConstantTransformer(new BasicStroke(strokeWidth))); bvs.getRenderContext().setEdgeArrowStrokeTransformer(new ConstantTransformer(new BasicStroke(strokeWidth))); bvs.getRenderContext().setEdgeLabelTransformer(new ToStringLabeller()); bvs.getRenderContext().setVertexLabelTransformer(new ToStringLabeller()); bvs.setPreferredSize(viewSize); //int width = bvs.getWidth(); // Always returns zero […]

比较开源java图形绘制框架(JUNG和Prefuse)绘制网络拓扑

哪个开源Java图形绘制框架用于具有以下要求的网络图? 该图表将少于1000个节点。 1)具有平行边缘 2)单个图中的有向和无向边 3)由图像表示的节点 4)用户与节点和边缘的交互 5)动态添加/删除节点和边缘 6)节点和边缘上的多个标记,用户可以关闭/打开不同的标记级别。 (比如在图层中绘图并关闭/在图层上) 7)不同的布局算法,以显示星形,环形,网状拓扑 我评估了JUNG和Prefuse。 这是我为每个要求找到的。 1)当JUNG支持时,Prefuse不能显示平行边缘。 可以预操作代码来显示平行边缘吗? 由于这涉及基本的数据级别更改,我相信通常的自定义呈现更改会更加困难。 2)我没有在prefuse和JUNG中找到任何对组合图(有向和无向边)的引用。 有没有人知道呢? 3)Prefuse和JUNG都很容易 4)prefeuse和JUNG再次为用户交互提供支持。 5)prefuse和JUNG都支持它。 重绘图表时每个框架如何执行? 我在另一篇文章中看到,prefuse在动态更新方面表现不佳( Prefuse Toolkit:动态添加节点和边缘 ) 6)这归结为修改图形并重新绘制它。 所以问题变得与5)相同 7)JUNG和prefuse都有多种布局算法。 但是当我尝试在JUNG和Prefuse中使用FruchtermanReingoldLayout显示相同的数据集时,我会得到不同的显示。 有什么想法吗? Prefuse中的布局算法似乎显示出比JUNG更好的布局(我认为渲染也更好),尽管Prefuse中的大多数布局算法都基于JUNG实现。 PreFuse布局(如ForceDirectedLayout / FruchtermanReingoldLayout和CircleLayout)直接映射到星形,圆形,网格拓扑。 在这些要求之外,prefuse对表达式和查询语言有很好的支持,但看起来它不像JUNG那样积极开发。 哪一个有更好的可视化? 关于哪一个适合以及如何克服缺点的任何建议? 我可以使用其他任何框架吗?

如何在MVC-gui中使用JUNG2?

我正在玩JUNG2并希望实现一个允许我显示和更改图表的小GUI。 遵循JUNG库中的示例工作正常,但他们没有单独的模型,视图和控制器。 所以我开始用干净的分离来构建GUI。 假设我的第一个版本的GUI,只是显示一个初始图形。 视图是模型的观察者,只要图形发生变化(在图形的初始化步骤中发生一次),就会收到通知。 但是,图形不会显示在屏幕的中央(就像在非MVC示例中那样),但我可以在左上角看到它的一小部分。 现在,这引出了一个普遍的问题:如何告诉jung-visualization组件,模型发生了变化? 以后:我如何使用即用型组件,如MVC架构中的Jung-Mouse? JUNG似乎混合了模型,视图和控制器,我不确定,如何以及在何处正确使用它们。 编辑:荣格教程显示如何使用鼠标管理更改,但它没有显示,如何根据模型中的更改更改视图(通过其他选项,例如按钮“添加节点”或其他) 这是我到目前为止的第一次尝试: 风景 public class MOCView implements GraphChangeObserver { private final ControllerInterface controller; private final MOCModelInterface model; private Layout layout; private BasicVisualizationServer visualization; private JFrame frame; public MOCView(final ControllerInterface controller, final MOCModelInterface model) { this.controller = controller; this.model = model; model.registerObserver(this); } public void createView() { […]