WorldWind Java на платформе Netbeans TopComponent - PullRequest
2 голосов
/ 01 октября 2011

Я пытаюсь добавить слой в WorldWind Java (версия 1.2), расположенный на платформе NetBeans TopComponent (с использованием NetBeans 7.0).TopComponent находится в режиме редактора, а для WWJ я использую WorldWindowGLCanvas, который является единственным компонентом свинга в TopComponent и размещается с BorderLayout.CENTER.Если я добавляю слои с помощью конструктора, все работает хорошо, я могу видеть слои в порядке.Если я добавляю слой с помощью элементов управления качанием (например, кнопки), слой добавляется в список слоев, но он не отображается.Это происходит как для WMS, так и для слоя Renderable.Тот же процесс на чистом свинг-приложении работает отлично, что наводит меня на мысль, что процесс рендеринга в WWJ как-то противоречит рисованию TopComponent.Любая помощь с благодарностью.

1 Ответ

0 голосов
/ 03 октября 2011

Я настроил демонстрацию с использованием платформы NetBeans (7.0.1) с 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 недействительным и вызвать перерисовку всякий раз, когда вам понадобится отрисовка нового слоя.

...