Помните, компоненты Swing не являются реальными компонентами с точки зрения ОС. Каждый компонент Swing должен быть «реализован». Это делается путем вызова методов pack () или setVisible (). Только в это время компонент Swing будет сопоставлен с равноправным компонентом ОС.
И помните, что когда вы добавляете компоненты в видимый графический интерфейс, компоненты все равно не появятся, потому что вам нужно вызвать менеджер компоновки для компоновки всех компонентов. Таким образом, даже если рамка была видна автоматически, в этом случае вам все равно нужно будет вызвать frame.validate (), чтобы убедиться, что компоненты расположены правильно.
Я думаю, что лучше добавить все компоненты, а затем сделать их видимыми, когда вы закончите добавлять все в кадр. Таким образом, вы размещаете компоненты только один раз, а не после добавления каждого компонента. Может быть, с другими языками, которые используют абсолютные размеры и позиционирование, это не имеет большого значения, потому что у них нет концепции менеджеров компоновки.