JUNG可滚动VisualizationViewer

时间:2013-08-03 16:23:23

标签: jung

我想使用JUNG库可视化一个框架中的一些图形(实际上是JInternalFrame,因为我还有图形之外的其他东西)。我的课程中有很多代码,但我只提供简短的版本,我如何创建组件来显示图表:

  1. 创建图表的布局,具体取决于图表的类型,我创建了不同的布局
  2. 使用布局作为参数创建VisualizationViewer。
  3. 创建包含VisualitationViewer的GraphZoomScrollPane。
  4. 将GraphZoomScrollPane设置为框架的内容窗格。
  5. 最终效果是,显示了滚动条,但即使图形大于框架,也不会启用滚动条。如果我减小了框架的大小,则启用滚动条,但我无法滚动查看整个图形。所以无论框架有多大,我都看不到整个图形。

    我也尝试过设置布局的大小,VisualizationViewer的大小,但是没有用。

    有人可以告诉我我错过了什么吗?

2 个答案:

答案 0 :(得分:1)

如果有人仍然需要解决方案:

JFrame jFrame=new JFrame("Graph");
Dimension preferredGraphSize=new Dimension(2500,2500);
Layout<V,E> layout=new FRLayout<>(graph, preferredGraphSize);
VisualizationViewer<V,E> visualizationViewer=new VisualizationViewer<>(layout, preferredGraphSize);

ScrollPane scrollPane=new ScrollPane();
scrollPane.add(visualizationViewer);
jFrame.getContentPane().add(scrollPane);
jFrame.pack();
jFrame.setVisible(true);

我们为布局和VisualizationViewer设置首选大小,在VisualizationViewer内包裹ScrollPane并滚动工作。

答案 1 :(得分:0)

至少根据我的具体情况找到解决方法:

我实现了VisualizationViewer.GraphMouse,当鼠标点击空白区域时,移动整个图形,以便可以看到不可见的部分。因此不需要滚动窗格。

但如果确实需要s滚动窗格​​,问题仍然存在。