2011-10-01 55 views
2

我想添加一個圖層到世界風的Java位於NetBeans平臺的TopComponent(使用NetBeans 7.0)(1.2版本)。 TopComponent處於Editor模式,對於WWJ,我使用WorldWindowGLCanvas,它是TopComponent上的單個swing組件,並且它與BorderLayout.CENTER一起放置。 如果我使用構造函數添加圖層的效果都很好,我可以看到圖層很好。如果我使用擺動控件(例如按鈕)添加圖層,圖層將被添加到圖層列表中,但不會呈現。這發生在WMS和Renderable圖層上。 在純搖擺應用程序上的相同過程正常工作,這使我相信WWJ中的渲染過程與TopComponent繪畫有某種衝突。 任何幫助,將不勝感激。世界風的Java在NetBeans平臺的TopComponent

回答

0

我已經建立了使用NetBeans平臺(7.0.1)演示與gov.nasa.worldwind.awt.WorldWindowGLCanvasgov.nasa.worldwindx.examples.LayerPanel

初始化代碼:

private void initComponents() { 
    canvas = new WorldWindowGLCanvas(); 

    Model model = (Model) WorldWind.createConfigurationComponent(AVKey.MODEL_CLASS_NAME); 
    canvas.setModel(model); 

    layerPanel = new LayerPanel(canvas); 

    setLayout(new BorderLayout()); 
    add(canvas, BorderLayout.CENTER); 
    add(layerPanel, BorderLayout.WEST); 
} 
private WorldWindowGLCanvas canvas; 
private LayerPanel layerPanel; 

這工作一樣它運行示例作爲一個獨立所以我只能說這個問題不在於NetBeans平臺。沒有任何代碼,很難說出了什麼問題。

注意,gov.nasa.worldwind.awt.WorldWindowGLCanvas不是一個Swing組件,但沉重的重量分量。這與你的問題無關,但我忍不住指出了這一點。 Swing組件是gov.nasa.worldwind.awt.WorldWindowGLJPanel

編輯:我知道我的答案是不是非常有幫助,所以補救措施,我想補充的建議。您可以嘗試使TopComponent無效,並在您需要渲染新圖層時調用repaint。

+0

問題竟然是查找 - 我們用它創造了另一個WWJ例如查找的方式 - 我們周圍這讓通過保持靜態引用WorldWindowGLCanvas。 – SorinS