2013-08-03 25 views
2

我想使用JUNG庫來可視化框架中的一些圖形(實際上是JInternalFrame,因爲我也有圖形之外的其他東西)。有在我班上許多代碼,但我只給了簡短的版本,我如何創建組件以顯示圖形:JUNG可滾動的可視化查看器

  1. 創建圖表的佈局,根據圖表的類型,我有不同的創建的佈局
  2. 使用佈局作爲參數創建VisualizationViewer。
  3. 創建一個包含VisualitationViewer的GraphZoomScrollPane。
  4. 將GraphZoomScrollPane設置爲框架的內容窗格。

最終效果是,顯示滾動條,但即使圖形大於框架,滾動條也未啓用。如果我減小框架的大小,滾動條被啓用,但我無法滾動查看整個圖形。所以無論框架有多大,我都看不到整個圖形。

我也嘗試設置佈局的大小,VisualizationViewer的大小,但沒有奏效。

請問有人能告訴我我錯過了什麼嗎?

+0

你可以發佈一個小的,可運行的例子嗎? – sdasdadas

+0

@sdasdadas你的意思到底是什麼意思?你想要我的解決方法的可運行示例嗎?還是基於我在問題中描述的例子? –

+0

後者是你的問題的一個例子,將幫助我看到發生了什麼。一張圖片勝過千言萬語。 :) – sdasdadas

回答

0

找到一個解決辦法,至少我的具體情況:

我實現了VisualizationViewer.GraphMouse,當空白處點擊鼠標,移動整個圖形,使人們可以看到看不見的部分。所以不需要滾動窗格。

但是,如果確實需要s滾動窗格​​,問題仍然存在。

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和滾動的作品裏面。

+0

先謝謝!但這實際上是我嘗試的第一個解決方案,並且它不起作用!然後我更改爲'GraphZoomScrollPane',根據JUNG的doc文件應該使用'GraphZoomScrollPane'來代替'JScrollPane',並且它再次不起作用! –