[英]Java3d - Jar file contains error java.lang.NoClassDefFoundError javax/media/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);
}
}
完整的初學者指南:
向該類添加一個公共變量。 (我假設類名是MyJFrame)
公共Canvas3D canvas3D;
框架類的構造如下:
公共MyJFrame(){
initComponents();
}
對其進行如下編輯:
公共MyJFrame(){
initComponents();
canvas3D =新的Canvas3D(SimpleUniverse.getPreferredConfiguration());
canvasContainer.add(canvas3D,“ Center”);
canvas3D.setSize(canvasContainer.getWidth(),canvasContainer.getHeight());
}
調整大小后,將偵聽器添加到容器中:(通常在調整窗口大小時)
選擇容器\\屬性\\事件\\ componentResized \\ canvasContainerComponentResized
輸入以下代碼:
如果(canvas3D!= null)
canvas3D.setSize(canvasContainer.getWidth(),canvasContainer.getHeight());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.