2012-09-07 2 views
1

저는 Java3D를 사용하여 solidstate 물리학에 대한 소개를 해왔습니다. 내부에있는 많은 3D 것들을 탐색 한 후에, 다른 것들을 테스트하기 위해 몇 개의 버튼을 넣기로 결정했습니다. 내 문제가 여기에 나타났다. 아래 그림에서 Canvas3D 및 버튼 겹침이있는 Java3D

, 내가 버튼을 배치 setLayout의 (널)를 사용하고 Canvas3D되었습니다

enter image description here

은 무엇 내가 여기 싶지 않은 것은 :

  • Canvas3D는 버튼이 겹칩니다.
  • Canvas3D는 사진 비율/창 크기의 비율을 동일하게 유지하지 않으므로 크기를 조정할 때 크기가 같아집니다.

는 다음 나는 Canvas3D에 대한 setLayout(new BorderLayout());add("Center",component);를 사용하여 시도하면서 "남"버튼은 "웨스트", "동".

enter image description here

이 더 잘 보이지만, 이번에는 또 다른 문제가 온다 :

  • 버튼은 (창으로 뻗어) 내가 원하는 크기 아니며 오프셋에 있지 않은 사진 아래의 경우를 보여주고있다 나는 원하는 위치.
  • "South"와 같은 영역에 두 개를 놓으면 단추가 서로 겹칩니다.

질문 : 버튼 내가 (X, Y)를 원하고 내가 Canvas3D에 의해 중복되지 않고 (시간, w) 원하는 크기가 단지 장소에있는 동안 난 창으로 Canvas3D 스트레치를 만들 수있는 방법. Canvas3D와 Buttons에 다른 레이아웃을 시도했는데 실패했습니다. 하나의 레이아웃 만 표시됩니다.

감사합니다.

Java3D 1.5.2 및 Eclipse. Windows XP 및 인텔 센트리노

답변

1

스윙 레이아웃 문제만큼이나 Java3D 문제가 아닙니다.

올바른 해결책은 원하는 모양에 따라 중첩 된 레이아웃 일 것입니다.

예를 들어, 단추의 북쪽 또는 서쪽 측면에 중첩 된 FlowLayout을 사용하여 테두리 레이아웃을 시도해 볼 수 있습니다. 이것은 아마도 사용자가 찾고있는 것과 더 가깝습니다. 아래와 같이 시도하고 필요에 맞게 사용자 정의하십시오.

JPanel rootPanel = new JPanel(new BorderLayout()); 
JPanel controlPanel = new JPanel(new FlowLayout()); 
controlPanel.add(new JButton("Alpha")); 
controlPanel.add(new JButton("Beta")); 
controlPanel.add(new JButton("Gamma")); 
rootPanel.add(controlPanel, BorderLayout.NORTH); 
rootPanel.add(myCanvas3D, BorderLayout.CENTER); 
관련 문제