簡體   English   中英

將NetBeans IDE 6.7與J3D的Canvas3D容器一起使用

[英]Using NetBeans IDE 6.7 with J3D's Canvas3D Container

我一直告訴自己這應該很簡單,但我完全迷失了。 首先,我要說我是NetBeans IDE的新手,並且我在必要時使用它。 我還不太了解。

我已經為我的應用程序成功設計了主窗口。 該應用程序的右側實質上是一個進入三維空間的大窗口,該窗口可視化了數據集上的某些轉換。 我已經搜索了調色板和調色板管理器,甚至試圖從JAR手動將Canvas3D組件添加到調色板中,但是我仍然無法獲得它。

我真的很希望能夠將此組件拖放到我的應用程序中,並且直觀地,這似乎是可能的。 我在Mac OS X上; 我的About NetBeans的輸出說明了更多信息。

產品版本:NetBeans IDE 6.7(內部版本200906241340)
Java:1.5.0 _ 19; Java HotSpot(TM)客戶端VM 1.5.0 _ 19-137
系統:在i386上運行的Mac OS X版本10.5.7; 麥克羅曼; zh_(nb)
用戶目錄:/Users/dremelofdeath/.netbeans/6.7

在此先感謝您為我提供幫助-非常感謝。

Canvas3D是一個重量級的組件,這意味着它使用本機對等組件來掛接到DirectX或OpenGL,因此可能無法使用這種組件進行拖放。 雖然您可以嘗試擴展JPanel。

您可以使用BoderLayout輕松手動設置布局。

MyFrame extends JFrame {

etc...

 Container container = getContentPane();
 container.setName("main.container");
 container.setLayout(new BorderLayout());

 container.add(new MyCanvasPanel(), BorderLayout.CENTER);

}  

// this could probably be added to the palete
public class MyCanvasPanel extends JPanel {

    SimpleUniverse su;
    Canvas3D canvas3D;

  public MyCanvasPanel() {
        canvas3D = new Canvas3D(SimpleUniverse.getPreferredConfiguration());
        add("Center", canvas3D);
        su = new SimpleUniverse(canvas3D);
  }

}

完整的初學者指南:

  1. 將java.awt.Container添加到JFrame。 (選擇Beans \\ java.awt.Container)。 讓該容器的名稱為canvasContainer。
  2. 向該類添加一個公共變量。 (我假設類名是MyJFrame)

    公共Canvas3D canvas3D;

  3. 框架類的構造如下:

    公共MyJFrame(){
    initComponents();
    }

    對其進行如下編輯:

    公共MyJFrame(){
    initComponents();
    canvas3D =新的Canvas3D(SimpleUniverse.getPreferredConfiguration());
    canvasContainer.add(canvas3D,“ Center”);
    canvas3D.setSize(canvasContainer.getWidth(),canvasContainer.getHeight());
    }

  4. 調整大小后,將偵聽器添加到容器中:(通常在調整窗口大小時)
    選擇容器\\屬性\\事件\\ componentResized \\ canvasContainerComponentResized
    輸入以下代碼:

    如果(canvas3D!= null)
    canvas3D.setSize(canvasContainer.getWidth(),canvasContainer.getHeight());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM