使用 setBounds() 创建 GUI



我读到使用setBounds()命令创建 GUI 是不好的。

我知道如何使用布局管理器,我不得不说它们也有其缺点。

我现在正在编写一个游戏,有时我需要将组件堆叠在一起。我发现没有办法使用布局管理器来做到这一点,但setBounds()完美地工作。

您能否解释一下如何使用布局管理器堆叠组件,并告诉我为什么为此目的使用setBounds()方法不好? 或者与用 Java 编码的游戏 GUI 结合使用是否正常?

布局管理器在计算控件的正确大小、调整 GUI 大小时将所有内容放置在正确的位置等方面

减轻了您的负担。基本上,您只需告诉布局管理器"我希望这个控件在角落里",布局管理器负责将其保留在那里,无论窗口发生什么,用户是否调整大小,移动它,...

游戏界面可能更加动态,元素不断移动。布局管理器通常不是特别擅长这些东西,它们通常是为静态用户界面设计的。大多数桌面软件(需要引用?;)(都使用这样的静态接口,布局管理器可以帮助这些接口的程序员,这样他们就不必为上述所有细节而烦恼。

由于游戏界面对于布局管理器来说是一个不太理想的用例,因此不将其用于所有内容是绝对合理的。不过,您可能仍然可以结合使用这两种技术 - 使用布局管理器来定位静态界面元素(您应该在某处有一个菜单按钮或类似的东西?(,但对所有移动的动态元素使用绝对定位。

不过,我还是建议您研究JavaFX,如我上面的评论中所述。它更适合绘制动画、移动的组件,并且应该为您节省大量工作。

当然,总会有例外 - 例如,数独界面是您可以使用布局管理器做得很好的东西,尽管它绝对是一款游戏。

你能解释一下如何使用布局管理器堆叠组件吗,并告诉我为什么为此目的使用 setBounds(( 方法不好?或者与用 Java 编码的游戏 GUI 结合使用是否正常?

定义堆栈?

Swing带有一个布局管理器,用于堆叠组件。查看OverlayLayout.它不是最灵活的,但您可以尝试以下代码: Java Layout with Component 始终位于右上角,如果它执行您想要的操作。

或者,您可以查看重叠布局,其布局属性更加灵活。

最后,您还可以将 JLabel 添加到 JLabel。使用一个标签作为背景。然后,您可以设置该标签的布局管理器,然后添加另一个 Swing 组件。

相关内容

  • 没有找到相关文章

最新更新