2

Netbeans Platform TopComponent (netbeans 7.0 を使用) にある WorldWind Java (バージョン 1.2) にレイヤーを追加しようとしています。TopComponent はエディター モードであり、WWJ では、TopComponent のシングル スイング コンポーネントである WorldWindowGLCanvas を使用し、BorderLayout.CENTER と共に配置します。コンストラクターを使用してレイヤーを追加すると、すべてうまく機能し、レイヤーが正常に表示されます。スイング コントロール (ボタンなど) を使用してレイヤーを追加すると、レイヤーはレイヤー リストに追加されますが、レンダリングされません。これは、WMS とレンダリング可能なレイヤーの両方で発生します。純粋なスイング アプリケーションで同じプロセスが正常に機能するため、WWJ のレンダリング プロセスが TopComponent の描画と競合していると思われます。どんな助けでも大歓迎です。

4

1 に答える 1

0

gov.nasa.worldwind.awt.WorldWindowGLCanvasNetBeans Platform (7.0.1)を使用してデモをセットアップしました。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 を呼び出すことができます。

于 2011-10-03T03:22:31.140 に答える