gpt4 book ai didi

java - 如何防止 LayoutManager 过度收缩我的组件?

转载 作者:行者123 更新时间:2023-11-29 10:20:27 25 4
gpt4 key购买 nike

如何防止 GUI 组件在 BorderLayout 管理器中调整大小时缩小?是否可以设置最小尺寸以使组件不会缩小超过它?似乎使用 setBounds 不适用于布局管理器。

还有一个问题:如果我使用嵌套面板,是否可以为它们分配固定位置并让布局管理器处理这些面板内的组件?我试图阻止 GUI 组件四处移动。

最佳答案

不幸的是,布局管理器是否支持最小尺寸、最大尺寸等取决于布局管理器的实现。这会导致很多令人困惑的行为,因为并非所有布局管理器都遵守它们,而 BorderLayout 也不遵守这些约束。

BoxLayout 将遵循这些值。 JComponent.setBounds 是 LayoutManager 将用来设置子项边界的内容,因此您的布局管理器可能会覆盖您放入其中的任何内容。如果您试图限制某些东西可以变得多小,我建议您在 JFrame 或 JDialog 上设置一个最小尺寸,这样可以防止有人将它做得太小导致布局管理器做一些有趣的事情。

我对任何使用 Swing 的人的第一个建议是捕获 TableLayout,花 15 分钟学习它,您的大部分布局问题都可以解决。我不知道这是否适用于您正在做的事情,但不久之后您就会遇到需要它的布局问题。 TableLayout 允许您指定哪些东西变大或变小,如果窗口太小而无法显示它,那么它不会将它们调整为小于首选大小。

https://www.oracle.com/technetwork/java/tablelayout-141489.html

我不确定你到底想做什么来提供更好的建议。

关于java - 如何防止 LayoutManager 过度收缩我的组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7198158/

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