【问题标题】:WorldWind Java on a Netbeans Platform TopComponentNetbeans 平台上的 WorldWind Java TopComponent
【发布时间】:2011-11-29 00:23:03
【问题描述】:

我正在尝试向位于 Netbeans 平台 TopComponent(使用 netbeans 7.0)上的 WorldWind Java(1.2 版)添加一个层。 TopComponent 处于编辑器模式,对于 WWJ,我使用 WorldWindowGLCanvas,它是 TopComponent 上的单个摆动组件,它与 BorderLayout.CENTER 一起放置。 如果我使用构造函数添加图层一切正常,我可以看到图层很好。如果我使用摇摆控件(例如按钮)添加图层,则图层会添加到图层列表中,但不会被渲染。 WMS 和 Renderable 层都会发生这种情况。 纯 Swing 应用程序上的相同过程可以正常工作,这让我相信 WWJ 中的渲染过程与 TopComponent 绘画有某种冲突。 任何帮助将不胜感激。

【问题讨论】:

    标签: netbeans worldwind


    【解决方案1】:

    我已经使用 NetBeans Platform (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。

    【讨论】:

    • 问题原来是查找 - 我们使用查找的方式创建了另一个 WWJ 实例 - 我们通过维护对 WorldWindowGLCanvas 的静态引用解决了这个问题。
    猜你喜欢
    • 2014-08-03
    • 1970-01-01
    • 1970-01-01
    • 2011-11-21
    • 2011-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多