gpt4 book ai didi

Java3D 与 Canvas3D 和按钮重叠

转载 作者:太空宇宙 更新时间:2023-11-04 08:04:20 24 4
gpt4 key购买 nike

我一直在使用 Java3D 对固态物理进行一些介绍。在深入研究了里面的许多 3D 东西后,决定放置一些按钮来测试不同的东西。我的问题就出现在这里。

在下图中,我使用 setLayout(null) 来放置按钮和 Canvas3D:

enter image description here

我不想要的是:

  • Canvas3D 重叠按钮。
  • Canvas3D 不会拉伸(stretch)以保持图片大小/窗口大小的相同比例,因此当我调整窗口大小时,它只是保持相同的大小。

然后我尝试使用 setLayout(new BorderLayout());add("Center",component); 对于 Canvas3D,而对于按钮使用“South”、“West”、“East”。下图为案例:

enter image description here

这看起来好多了,但这次又出现了另一个问题:

  • 按钮不是我想要的尺寸(拉伸(stretch)到窗口)并且不在我想要的偏移位置。
  • 当我将两个按钮放在同一区域(例如“南”)时,按钮也会相互重叠。

问题:如何使 Canvas3D 拉伸(stretch)到窗口,同时按钮正好位于我想要的位置(x,y)并且具有我想要的尺寸(h,w)而不被 Canvas3D 重叠。我尝试了 Canvas3D 和按钮的不同布局 ->失败。仅显示一种布局。

感谢您的宝贵时间。

Java3D 1.5.2 和 Eclipse 。 Windows XP 和英特尔迅驰

最佳答案

与其说这是一个 Java3D 问题,不如说它是一个 Swing 布局问题。

正确的解决方案可能是某种嵌套布局,具体取决于您希望它的外观。

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

关于Java3D 与 Canvas3D 和按钮重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12314324/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com