我正在尝试向位于Netbeans平台TopComponent上的WorldWind Java(版本1.2)添加一个图层(使用netbeans 7.0)。 TopComponent处于编辑器模式,对于WWJ,我使用WorldWindowGLCanvas,它是TopComponent上的单个swing组件,它与BorderLayout.CENTER一起放置。 如果我使用构造函数添加图层一切正常,我可以看到图层很好。如果我使用swing控件(例如按钮)添加图层,则图层会添加到图层列表中,但不会渲染。对于WMS和可渲染层都会发生这种情况。 纯摆动应用程序上的相同过程工作正常,这让我相信WWJ中的渲染过程与TopComponent绘画有某种冲突。 非常感谢任何帮助。
答案 0 :(得分:0)
我使用带有gov.nasa.worldwind.awt.WorldWindowGLCanvas
和gov.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以呈现新图层。