2012-09-07 31 views
1

我一直在使用Java3D做一些固态物理介绍。在研究了很多3D内容之后,决定放一些按钮来测试不同的东西。我的问题出现在这里。Java3D与Canvas3D和按钮重叠

在下面的图片,我用的setLayout(空)放置按钮和Canvas3D:

enter image description here

什么,我不想在这里:

  • Canvas3D重叠按钮。
  • Canvas3D不能保持相同比例的图片大小/窗口大小,所以当我调整窗口大小时,它只是相同的大小。

然后我试图使用setLayout(new BorderLayout());add("Center",component);为Canvas3D而“南”,“西”,“东”的按钮。以下图片显示的情况:

enter image description here

这看起来更好,但这个时候另一个问题就来了:

  • 按钮是不是我想要的大小(延伸到窗口),而不是在偏移我想要的位置。
  • 按钮也互相重叠,当我把两个像“南”一样的区域。

问:我怎样才能让Canvas3D拉伸到窗口,同时按键都只是在地方,我想(X,Y),并有我想要的(H,W)而不被Canvas3D重叠的大小。我尝试了Canvas3D和按钮的不同布局 - >失败。只显示一个布局。

谢谢你的时间。

Java3D 1.5.2和Eclipse。 Windows XP和Intel centrino

回答

1

这不是真正的Java3D问题,因为它是一个Swing Layout问题。

正确的解决方案可能是某种嵌套布局,具体取决于您希望它看起来如何。

例如,您可以尝试使用边界布局,在您的按钮的北侧或西侧嵌套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);