问题标签 [graphstream]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
272 浏览

java - GraphStream 2.0 - 拖动节点时鼠标指针偏移

我是 GraphStream 的新手,并且已经构建了一个最小的应用程序,其中 GraphStream 2.0 图形嵌入到了 Swing 应用程序中。

在我的应用程序中,当我尝试拖动节点时,鼠标指针显然偏移了面板大小的大约一半(垂直和水平)。

这是代码:

下图为拖动中间矩形节点时鼠标指针的位置(红色圈出)。

在此处输入图像描述

关于这个问题的原因有什么想法吗?

编辑:

这是一个显示问题的简短 GIF 动画(显示的应用程序是上面的代码):

在此处输入图像描述

0 投票
1 回答
92 浏览

java - 我无法通过 JFileChooser 加载图表并实际显示它

所以,我有一个从 JFrame 继承的类,带有两个 JSplitPanes 和一个菜单栏。一个 JSplitPane 在顶部有一个 JSplitPane,在底部有一个 textarea,另外一个在左右有两个 JPanel。我想解析一个我通过 JFileChooser 选择的 pnml 文件(或更多,但我只是想让一个现在工作)。我可以选择一个文件,然后通过打印文件名对其进行测试,这是可行的,但我无法在左侧 JPanel 中实际显示图形。也许有人可以帮助我。这是我的课:

在我尝试使用 JFileChooser 并对 .pnml-path 进行硬编码之前,它运行良好。构造函数看起来像这样。现在我只是调用 new Fenster_test("Name of my Frame"); 在我的主方法中以及在我也在主方法中进行解析之前。

0 投票
1 回答
114 浏览

java - Graphstream(Android) - 无法在片段中显示图形

我是Android开发的初学者。我正在尝试研究 Graphstream ( https://graphstream-project.org ) 在 android 应用程序中的使用。我创建了一个带有抽屉布局的基本活动,其中包括我打算在其中显示图形的导航视图和框架布局。
我尝试使用此处的代码示例 - https://github.com/graphstream/gs-ui-android-test/blob/master/app/src/main/java/ui/graphstream/org/gs_ui_androidtest/Activity_withXML .java

这是我的代码:-

但是,我只在框架中看到一个空白的白色屏幕。该应用程序没有崩溃。有人可以解释我做错了什么吗?
这是我在 Android Studio 的 logcat 错误(红线)中看到的:-

我也不确定在 Graphstream 的实现中是否遗漏了一些完整的步骤。github 上的一些示例显示了“算法生成器”的使用,其他一些示例显示了在受保护的 void onStart() 下使用“viewerpipe” - 就像本页上的代码 - > https://github.com/graphstream /gs-ui-android-test/blob/master/app/src/main/java/ui/graphstream/org/gs_ui_androidtestFull/Activity_LayoutTest.java
我对他们的用例感到困惑。

因此,如果有人还可以指出任何有专门针对 android 的 graphstream 详细教程的资源,我将不胜感激。github上的网站和代码示例在与android相关的方面没有太多描述性(或者原谅我是菜鸟)。
谢谢

0 投票
1 回答
116 浏览

java - 同一图表上具有不同样式的多个视图

我正在尝试比较社区检测算法的输出,并且我想进行并排比较。这个想法是,我将有两个窗口显示相同的图形布局,并根据所选输出为节点和边缘着色。一个简单的例子是这样的:GUI 示例视图

我能够生成图形并创建视图,但我没有发现如何在 Graphstream 中为两个图形强制使用相同的图形布局或基于 Graphstream 视图分配不同的 UI 属性。

这个事情谁有经验?

在一个玩具示例中,我似乎得到了类似的结果,尽管不一样。问题开始了,一旦我使用了数千个节点,似乎布局就完全不同了。不幸的是,我无法为这种情况提供数据集。这是一个更大数据的示例:

在此处输入图像描述 两个图都有相同的布局管理器(SpringBox)并使用相同的数据。

我正在使用 Java 8、Graphstream 2.0 和 Swing

编辑:我发现,可以Random作为种子传递给Layout,但不幸的是它不会产生相同的图表。

0 投票
1 回答
31 浏览

scala - 在 Scala 中使用 GraphStream 显示节点和边的名称

我正在使用 Scala 中的 GraphStream 创建图形。

代码的一个小版本如下:

此代码给出以下结果:

图形

我查看了 GraphStream 的官方文档,但找不到如何使节点和边的 ID 出现。所以我的问题是,我怎样才能在我的图表中添加文本?

0 投票
1 回答
49 浏览

java - org.graphstream.ui.layout.LayoutRunner 运行信息:布局“SpringBox”进程已停止。这是个问题吗?

我在我的应用程序中使用 GraphStream 并显示图表,我为每个图表使用 FXViewer。最初我想显示不同的图表,而不设置节点的位置,所以我使用 enableAutoLayout() 方法:

接下来,我想显示相同的图表,但手动设置了固定位置,因此,对于每个图表,我都禁用了相关 FXViewer 的自动布局。

但是,每次我在控制台中禁用自动布局到 FXViewer 时,都会出现以下消息:

这是个问题吗?我应该做些什么还是可以忽略此消息?

0 投票
0 回答
17 浏览

java - 使用 Java GraphStream 加载和解析文件并将所述文件显示为图形

文件的加载和解析继续进行,没有明显的问题,但是我尝试在其中显示图表的 ViewPanel 在启动应该导致此问题的操作时没有立即显示。相反,应显示带有图形的 ViewPanel(=从 JPanel 继承的对象)的容器保持为空。当我在应用程序窗口上单击两次时,这种情况会发生变化,例如,首先单击最小化图标,然后单击相应的图标再次放大窗口。在这两次点击之后,所需的图表会出现在屏幕上,这意味着 ViewPanel 也在做它应该做的事情。然而,这两次点击是令人讨厌的,据我所知,它们与我编写的代码无关,而且它们不应该是必需的。

我很感激任何有用的建议。

0 投票
1 回答
28 浏览

javafx - 在 GraphStream 中鼠标悬停时获取 GraphicEdge

当鼠标悬停在边缘时,我想显示边缘的重量。

所以我MouseEvent.MOUSE_MOVED在我实现的 MouseManager 中使用了一个。有了节点,我就可以调用view.findGraphicElementAt(getManagedTypes(), event.getX(), event.getY())来获取 GraphicNode 对象。不幸的是,边没有一个x 和 y 值,因此无法通过此方法找到。是的,我知道getX()并且getY()是为 GraphicEdge 实现的,但只是指向边缘的中心。

我需要边缘对象来获取存储在边缘的更多信息(如重量)。那么如何使用 x,y 或可以从接收到的 MouseEvent 中检索到的其他值来获取边缘对象?

0 投票
1 回答
32 浏览

java - GraphStream & Swing - 无法正确显示我的图表

我是 GraphStream 和 Swing 的初学者,我想在 a 中插入一个 Graph JPanel,但在尝试时我得到以下显示:

主机架

graph.display()在代码中添加了一个以查看问题是否来自图表,但它似乎正确显示:

带有 graph.display() 的图形

我的印象是,当图形在面板中时,顶点不想正确定位自己。

代码:

我的自定义面板:

我的框架:

编辑:我在部分中找到了关于graphstream(https://graphstream-project.org/doc/Tutorials/Graph-Visualisation/1.0/)文档的解决方案Automatic layout,使用查看器时,您必须添加viewer.enableAutoLayout();才能正确显示它

0 投票
0 回答
18 浏览

java - 使用 Graphstream 将自定义绘图覆盖在图形顶部时画布闪烁

当我将 Swing 中的一条线应用于包含使用 Graphstream 创建的现有图形的组件时,我遇到了渲染/绘画问题。

问题是当鼠标被拖动并调用绘画方法时,底层图形被更新,整个帧闪烁,线条绘制不顺畅。

有没有办法冻结底层图形的渲染?

我尝试了几种方法,但似乎都产生了相同的结果。在最新示例下方,我尝试在视图上设置前布局渲染器。

我相信这是一个简单的问题,与在画布上绘图的方法不正确有关,而没有正确管理此前景层的重绘/渲染的并发或更新。

此外,如下所示,在添加我自己的自定义侦听器之前,我从图中删除了所有侦听器(否则在拖动鼠标时,graphstream 库会绘制边界框/选择矩形,或者拖动节点)。这里是否还有更好的方法来停用 graphstream 完成的绘图和鼠标交互。