如何防止LayoutManager缩小组件太多?

Fad*_*lMS 1 java layout swing awt border-layout

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

只是一个问题:如果我使用嵌套面板,是否可以为其分配固定位置,并让布局管理器来照顾这些面板中的组件?我试图防止GUI组件四处移动。

chu*_*ubs 5

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

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

对于执行Swing的任何人,我的第一个建议就是抓住TableLayout,花15分钟来学习它,并且大多数布局问题都可以解决。我不知道这是否适用于您正在做的事情,但是不久您就会遇到需要它的布局问题。TableLayout允许您指定要放大或缩小的内容,并且如果窗口太小而无法显示,则它的大小不会小于首选大小。

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

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