Что касается определения размеров компонентов в Swing, в конечном итоге макет родительского контейнера имеет решающее значение для размера компонента.
Например, в FlowLayout
вызов setPreferredSize()
, setSize()
или setMaximumSize()
для компонента приводит к тому, что метка имеет размер, а не его размер. Однако, с setMinimumSize()
он начнется с этого размера, а затем с размером выше него.
Для BorderLayout
, если компонент добавляется в центр, ни один из методов определения размера не влияет на компонент - он просто занимает максимальный объем доступного пространства.
Если вы установите макет родительского контейнера на null
, вы можете явно указать размеры компонентов, однако вы потеряете автоматическое изменение размера, которое вы используете для других макетов.