2012-09-12 79 views
0

我使用prefuse最近做出一些可視化。我要做的就是 我從數據庫加載一些信息,做出prefuse表實例爲他們 ,並根據這些信息的圖表。這工作正常。Prefuse API的Java創建邊緣

我的問題是我怎樣才能創建該圖邊緣?

我想我必須創建另一個表來保存邊緣,但我不知道 創建這個東西的方式......任何幫助表示讚賞!謝謝!

這是我爲代碼圖形設置數據

Table nodeData = null; 
    String query1 = "my_select_statement"; 

    try { 
     nodeData = datasrc.getData(query1); 

    } catch (DataIOException ex) { 
     ex.getMessage(); 
     ex.printStackTrace(); 
    } 

Graph graph = new Graph(nodeData, true); 

回答

0

有一個prefuse圖,它接受一個邊緣表,正如你提到的構造函數:

public Graph(Table nodes, Table edges, boolean directed) 

我建議你檢查出這個非常簡單的空間分隔的矩陣讀者參考: https://github.com/brycecr/msmexplorer/blob/master/MSMExplorer/src/edu/stanford/folding/msmexplorer/io/DatGraphReader.java

總之,你只需創建一個表,但是你需要「源」和「目標」欄,其中的條目到這些列是0,索引indicies到節點表中。創建列:

m_edgeTable = new Table(); 
m_edgeTable.addColumn(Graph.DEFAULT_SOURCE_KEY, int.class); //0th 
m_edgeTable.addColumn(Graph.DEFAULT_TARGET_KEY, int.class); //1st 

分配源&目標列:

m_edgeTable.addRow(); 
m_edgeTable.set(rowNum, 0, sourceNodeIndex); 
m_edgeTable.set(rowNum, 1, targetNodeIndex); 

你有正確的想法!

P.S:如果你正在寫一個圖形閱讀器,因爲它似乎你,我真的建議繼承AbstractGraphReader。這將使您的生活更輕鬆,因爲您可以像使用內置圖形閱讀器一樣使用新課程。