Если вы еще этого не сделали, похоже, вам нужно взглянуть на менеджеры по расположению . Некоторые менеджеры компоновки соблюдают запрошенные или предпочтительные размеры компонентов, другие - нет.
По умолчанию JFrame
использует BorderLayout
в качестве менеджера раскладки. Когда вы добавляете панель календаря выше без указания ограничений, предполагается, что вы хотите, чтобы панель была центрирована. Все, что находится в центре BorderLayout
, занимает все доступное пространство, независимо от того, какие границы компонента вы установили.
Для немедленного решения вашей проблемы установите менеджер макета на null
:
Container pane = window.getContentPane();
pane.setLayout( null );