2009-07-07 5 views
0

나는 이것이 간단해야한다는 것을 계속 말하고 있지만 나는 완전히 잃어 버렸습니다. 먼저 NetBeans IDE에 익숙하지 않다는 점을 강조하고 필요에 따라 사용하고 있습니다. 나는 아직 그것에 대해 많이 알지 못한다.J3D의 Canvas3D 컨테이너와 함께 NetBeans IDE 6.7 사용

내 응용 프로그램의 기본 창을 성공적으로 설계했습니다. 응용 프로그램의 오른쪽은 본질적으로 데이터 세트의 특정 변환을 시각화하는 3 차원 공간의 큰 창입니다. 팔레트와 팔레트 관리자를 검색하고 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; MacRoman; en_US (nb)
Userdir : /Users/dremelofdeath/.netbeans/6.7

미리 감사드립니다. 정말 고맙습니다.

답변

1

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); 
    } 

} 
+0

감사합니다. 완전한 해결책은 아니지만 올바른 방향으로 나를 지적했습니다. :) –

0

완전 초보자 가이드 :

  1. 이 JFrame의에 java.awt.Container의 추가. (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());

관련 문제