Java Swing:如何为组件定义一个(两者中的)最小维度?

jav*_*top 2 java size swing dimensions layout-manager

要成功定义最小尺寸,我必须执行以下操作:

// setting minimal width AND height
Dimension min = new Dimension(100, 100);
comp.setMinimumSize(min);
comp.setPreferredSize(min);
comp.setSize(min);
Run Code Online (Sandbox Code Playgroud)

当我留下一行时它不起作用,这很奇怪,但这不是重点。

我该怎么做,以限制只有一个两个维度(宽度高度),并让该部件和/或布局管理器自动决定对未指定的尺寸?

当我为不想限制的维度使用非常小的值时,许多组件显示错误(即太小)。

Gro*_*uez 5

默认情况下(即如果setMinimumSize尚未在组件上调用)getMinimumSize委托给组件的布局管理器,因此您可以尝试重新定义该getMinimumSize方法如下:

public Dimension getMinimumSize()
{
    return new Dimension(minWidth, super.getMinimumSize().height);
}
Run Code Online (Sandbox Code Playgroud)

如果您这样做,请记住您不应调用setMinimumSize该组件。