我一直在使用Java3D对solidstate物理做一些介绍。在钻研了很多3D内容之后,决定用一些按钮来测试不同的东西。我的问题出现在这里。
在下面的图片中,我使用setLayout(null)来放置按钮和Canvas3D:
我不想要的是:
然后我尝试将setLayout(new BorderLayout());
和add("Center",component);
用于Canvas3D,而使用“South”,“West”,“East”作为按钮。下图显示了这种情况:
这看起来更好,但这次又出现了另一个问题:
问题:如何让Canvas3D拉伸到窗口,而按钮就位,我想要(x,y)并且具有我想要的尺寸(h,w)而不会被Canvas3D重叠。我为Canvas3D和Buttons尝试了不同的布局 - >失败了。只显示一个布局。
感谢您的时间。
Java3D 1.5.2和Eclipse。 Windows XP和intel centrino
答案 0 :(得分: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);