Описание тега jframe

JFrame - это компонент и контейнер верхнего уровня инфраструктуры JFC/Swing.

Фрейму является компонентом и верхнего уровня контейнера в /Swing рамках JFC. JFrame - это элемент Frame в Java Swing, но он немного несовместим с Frame. Обычно это самый внешний компонент, имеет фрейм и заголовок и обычно заполняется меню и панелями JPanel, которые содержат дополнительные компоненты.

JFrame является тяжелым, поскольку он основан на создании "тяжелого" окна AWT. Легкие компоненты могут заменять внутренние виджеты реализацией на основе Java, которая не требует использования JNI (собственный интерфейс Java), но окна являются особым случаем. JFrame позволяет делать настраиваемый рендеринг через тяжелое окно. Кроме того, если вы используете другие легкие вещи, все они будут добавлены вcontentPane. Использование JFrame делает рендеринг в целом более эффективным, чем смешивание легких и тяжелых компонентов. Сам JFrame является контейнером верхнего уровня и содержит JRootPane в качестве единственного дочернего элемента. Панель содержимого, предоставляемая корневой панелью, должна, как правило, содержать все компоненты, не являющиеся меню, отображаемые JFrame. Это отличается от случая AWT Frame.

JFrame состоит из нескольких слоев. Основной уровень, на котором добавляются все компоненты Swing, - это панель содержимого:

frame.getContentPane().add(new JButton("Ok"), BorderLayout.CENTER);

Для удобства метод add и его варианты remove и setLayout были переопределены для пересылки в contentPane по мере необходимости. Это означает, что вы можете написать

frame.add(new JButton("OK"), BorderLayout.CENTER);

и JButton будет добавлен в contentPane.

Если вы добавляете компоненты только в сам JFrame, вы фактически добавляете их на панель содержимого (то же самое с удалением и т. Д.).

Сверху находится стеклопакет (это не контейнер). Он нарисован поверх всех компонентов на панели содержимого. По умолчанию он невидим, нужно позвонитьsetVisible(true) чтобы показать это:

JFrame frame = new JFrame();    
frame.getContentPane().add(new JButton("Ok"), BorderLayout.CENTER);
frame.setGlassPane(new JLabel("-------------------------"));
frame.getGlassPane().setVisible(true);
frame.setSize(100,100);
frame.setVisible(true);

Снимок экрана, демонстрирующий использование JFrame

Размер и расположение JFrame указываются в координатах экрана.

Ссылка: Class JFrame