2011-06-25 13 views
4

私は、NASAのWorld Wind globeをNetBeans GUIビルダーで作成されたGUIウィンドウに追加しようとしています。私のサンプルコードは独自のウィンドウをインスタンス化し、GUIビルダーは私がこの問題を解決するために必要な領域を編集しないようにしたいと思っています:)私は自分で作成しますが、これはNetBeansプラットフォームアプリケーションの一部であり、まだ扱う。私はこれを達成する方法がわかりません。例えば、代わりにあなたの全体のアプリケーションのためのGUIエディタを使用してのNetBeans GUIビルダーにカスタムコンポーネントを追加する! (WorldWind)

public class WorldWindTest { 

public static void main(String[] args) { 

    //create a WorldWind main object 
    WorldWindowGLCanvas worldWindCanvas = new WorldWindowGLCanvas(); 
    worldWindCanvas.setModel(new BasicModel()); 
      Position myPoint = Position.fromDegrees(31.12, -88.64, 35000); 


    //build Java swing interface 
    JFrame frame = new JFrame("World Wind"); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.add(worldWindCanvas); 
    frame.setSize(800,600); 
    frame.setVisible(true); 

    //create some "Position" to build a polyline 
    LinkedList<Position> list = new LinkedList<Position>(); 

//   list.add(Position.fromDegrees(i,0.0,i*20000)); 
    } 

      list.add(Position.fromDegrees(30.12, -85.64, 35000)); 
      list.add(Position.fromDegrees(31.12, -88.64, 35000)); 


    //create "Polyline" with list of "Position" and set color/thickness 
    Polyline polyline = new Polyline(list); 
    polyline.setColor(Color.RED); 
    polyline.setLineWidth(3.0); 

    //create a layer and add Polyline 
    RenderableLayer layer = new RenderableLayer(); 
    layer.addRenderable(polyline); 
    //add layer to WorldWind 
    worldWindCanvas.getModel().getLayers().add(layer); 
} 
} 
+1

これは私がGUIビルダーを使用していない理由です。その「利便性」はしばしば不便であることがわかります。 :) – mre

+1

はい、私は聞いていますが、彼らはNetBeansプラットフォームでそれをあなたに取り入れています。 –

+1

NetBeansコード生成を使用してBorderLayoutを使用するコンテナを追加してから、カスタムコードを使用して、WorldWindowGLCanvasをBorderLayout.CENTER位置のコンテナに追加することもできます。 –

答えて

4

、私はあなたがクラスを作成することができると考えていた、SetUpWorldWindowGLCanvasと呼ばれると言う、そしてそれで、初期化すると、あなたのWorldWindowGLCanvasオブジェクトを設定し、その後、WorldWindowGLCanvasオブジェクトを取得するためのパブリックゲッターメソッドを与えます。すなわち、

public class SetUpWorldWindowGLCanvas { 

    WorldWindowGLCanvas worldWindCanvas = new WorldWindowGLCanvas(); 

    public SetUpWorldWindowGLCanvas() { 
     worldWindCanvas.setModel(new BasicModel()); 
     Position myPoint = Position.fromDegrees(31.12, -88.64, 35000); 

     // ... etc 
    } 

    public WorldWindowGLCanvas getWwGlCanvas() { 
     return worldWindCanvas; 
    } 
} 

そして、あなたのGUIビルダーで作成され、それがそのレイアウトマネージャとしてのBorderLayoutを使用したのJPanelでこのBorderLayout.CENTERを置きます。

+0

カプセル化の場合+1。これを1つ以上のコード生成プロパティとしてプラグインすることもできますが、記述するのは面倒です。 – trashgod

+0

これはうまくいくでしょう。 dang .dllsに問題がありますが、このアプローチは堅実です。ありがとう! –

3

それはそれから最も恩恵を受けるわずか数のコンテナを使用します制限:ここで私は窓に希望のサンプルコードはあります難しいレイアウト。その後、通常のtop-level containerWorldWindowGLCanvasを追加できます。このexampleでは、WorldWindowGLCanvasNewJPanelと一緒に表示されます:私のコメントに増幅するために

JFrame f = new JFrame(); 
f.setLayout)new GridLayout(1, 0); 
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
f.add(worldWindCanvas); 
f.add(new NewJPanel()); 
f.pack(); 
f.setVisible(true); 
+0

あなたの答えは私のものと関連していると思います。さて、GMTA以来1 +の投票、そしてOPは明らかに戻って来ていないので。 –

+0

LOL、戻ってきました、戻ってきました。ちょうど起こった、あなたの誕生日を楽しむためにいくつかの時間を取らなければならない、すべての時間をコードすることはできません:)これらを試しに行く、いくつかのあなたと戻って。 –

関連する問題