在我的应用程序中,我想使用JUNG显示生成的图形。它生成JPanel对象作为输出。所以,我认为这只是向面板添加组件的问题。但是图表是在其父面板之外绘制的。截图: screenshot http://i51.tinypic.com/2eg5lk5.jpg 如何将图形限制在可见区域内? 我用来向面板添加图形的代码是这样的(边框是我看到面板边框,虽然它没有显示出来的原因):
Layout<Object, String> layout = new CircleLayout<Object, String> (graphProvider.getGraph());
layout.setSize(panel.getMarketGraphPane().getPreferredSize());
BasicVisualizationServer<Object,String> graphPanel = new BasicVisualizationServer<Object,String>(layout);
graphPanel.setBorder(new EtchedBorder());
graphPanel.setSize(panel.getMarketGraphPane().getPreferredSize());
panel.getMarketGraphPane().add(graphPanel, BorderLayout.CENTER);
panel.getMarketGraphPane().revalidate();
答案 0 :(得分:3)
实际图像的信息太少
1取决于
Size
返回什么(使用JUNG生成图表),你也设置了setSize(int,int),
如果图表可以分辨,
2)删除
layout.setSize(panel.getMarketGraphPane().getPreferredSize());
和
graphPanel.setSize(panel.getMarketGraphPane().getPreferredSize());
你不能setSize
将对象放到BorderLayout.CENTER
,我认为可以直接将generated graph, using JUNG. It produces JPanel object
)放到BorderLayout.CENTER
区域,试试这个也许你的twice setSize
产生了一些混乱
然后你只能打电话
panel.add(graphPanel, BorderLayout.CENTER);
panel.revalidate();
panel.repaint();
3)另外两个选择(没有清理setSize
)
致电pack();
致Top-Level Container,请注意LCD / LED显示屏界限
将其添加到JScrollPane
答案 1 :(得分:2)
使用GraphZoomScrollPane为VisualizationViewer对象添加可缩放图形滚动窗格容器,如下所示:
GraphZoomScrollPane pane = new GraphZoomScrollPane(visualizationViewer);
JPanel panel = new JPanel();
BorderLayout panelMapLayout = new BorderLayout();
panel.setLayout(panelMapLayout);
panel.add(pane, BorderLayout.CENTER);