Описание тега jframe
Фрейму является компонентом и верхнего уровня контейнера в /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 указываются в координатах экрана.
Ссылка: Class JFrame