Введение в GridBagLayout в Java

GridBagLayout - один из самых сложных, мощных и сложных менеджеров компоновки, предлагаемых Java. GridBagLayout выравнивает компоненты по вертикали, горизонтали или вдоль базовой линии. Компоненты могут быть одинаковой ширины или нет, в зависимости от требования. Они поддерживают и управляют динамическими ячейками, в которых область отображения состоит из одной или нескольких ячеек. Эти компоненты связаны с экземпляром GridBagConstraints, в котором объекты ограничений помогают организовать область отображения компонентов в сетке. GridBagLayout имеет пакет java.awt. Давайте рассмотрим конструктор, методы и реализацию GridBagLayout в следующих разделах.

Конструкторы GridBagLayout в Java

Java.awt.GridBagLayout объявлен с использованием следующего синтаксиса.

public class GridBagLayout extends Object implements LayoutManager2, Serializable

GridBagLayout () является конструктором GridBagLayout, который помогает в создании менеджера макета мешка сетки. Во-первых, мы создаем объект для класса GridBagLayout с помощью конструктора без аргументов

GridBagLayout obj = new GridBagLayout();
setLayout(obj);

Давайте посмотрим на некоторые поля для класса java.awt.GridBagLayout.

  • PREFERRED_SIZE

Указывает предпочтительный размер сетки из компонента. Здесь также может быть разрыв, который должен использоваться для определенного значения диапазона.

  • DEFAULT_SIZE

Указывает размер сетки от компонента. Здесь также может быть разрыв, который должен использоваться для определенного значения диапазона.

  • defaultConstraints

Экземпляр ограничений gridbag, который содержит значения по умолчанию, находится здесь.

  • layoutInfo

Детали макета Gridbag держатся в этом.

  • rowWeights

Переопределить весовые ряды здесь.

  • MAXGRIDSIZE

Это помогает в обратной совместимости.

  • rowHeights

Переопределения проводятся до минимальной высоты строки.

Методы GridBagLayout в Java

Ниже приведены несколько методов GridBagLayout, которые можно использовать для разных целей.

  • removeLayoutComponent (Component cmpn)

Из макета указанный компонент удаляется.

  • addLayoutComponent (Компонент cmpn, Объект objcons)

Указанный объект ограничения добавляется в макет указанного компонента.

  • getLayoutAlignmentY (Контейнер cnt)

Выравнивание по оси Y возвращается.

  • addLayoutComponent (имя строки, компонент cmpn)

Указанный объект ограничения добавляется в макет указанного компонента с определенным именем.

  • нанизывать()

Значения в макете мешка сетки возвращаются в представлении строки.

  • getLayoutAlignmentX (Контейнер cnt)

Выравнивание по оси X возвращается.

  • getConstraints (Компонент cmpn)

Указанные ограничения компонента возвращаются.

  • maximumLayoutSize (Контейнер cnt)

Компоненты в контейнере возвращаются с максимальными размерами.

  • imumLayoutSize (Контейнер cntmin)

Компоненты в контейнере возвращаются с минимальными размерами.

  • предпочитаемый размер (контейнер cntpref)

Компоненты в контейнере возвращаются с предпочтительными размерами.

  • rangeGrid (Контейнерный центр)

Это помогает в организации сетки.

  • AdjustForGravity (GridBagConstraints cn, Rectangle rect)

В зависимости от геометрии ограничений этот метод корректирует поля ширины, x, высоты и y в соответствии с правильными значениями.

  • getLayoutDimensions ()

Ширина столбца и высота строк определяются с помощью этого метода.

  • getLayoutInfo (Контейнер cnt, int sizeflag)

Он устарел и используется для обратной совместимости.

  • getLayoutOrigin ()

Он определяет начало области макета в графическом координатном пространстве целевого контейнера.

  • getLayoutWeights ()

Вес столбца и высота строк определяются с помощью этого метода.

  • getMinSize (Контейнер cnt, GridBagLayoutInfo inf)

На основании сведений, полученных из getLayoutInfo, возвращается минимальный размер мастера.

  • invalidateLayout (Container cnt)

Если в менеджере макета присутствует некоторая кэшированная информация, это делает макет недействительным.

  • layoutContainer (Контейнер cnt)

Указанный контейнер будет размечен с использованием этого макета мешка сетки.

  • Расположение точки (int x, int y)

Этот метод идентифицирует ячейку, которая содержит упомянутую точку, используя x и y.

  • lookupConstraints (Компонент cmp)

Ограничения упомянутого компонента найдены.

  • setConstraints (Компонент cmp, GridBagConstraints const)

Ограничения упомянутого компонента задаются в макете.

Программа для реализации GridBagLayout на Java

Теперь давайте посмотрим программы для реализации GridBagLayout в Java.

Программа № 1

// Java program to implement GridBagLayout layout manager
//import the packages needed
import java.awt.Button;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import javax.swing.*;
//GridExample class extends JFrame
public class GridExample extends JFrame(
//main method
public static void main(String() args) (
//object of the class GridExample
GridExample ge = new GridExample();
)
//constructor of class GridExample
public GridExample() (
// Object of GridBagLayout
GridBagLayout gl = new GridBagLayout();
// Object of GridBagConstraints
GridBagConstraints gc = new GridBagConstraints();
// GridBagLayout is set
setLayout(gl);
// Method to set JFrame Title.
setTitle("Example for GridBag Layout ");
GridBagLayout ll = new GridBagLayout();
this.setLayout(ll);
//components in horizontal
gc.fill = GridBagConstraints.HORIZONTAL;
//left most row and top most column
gc.gridx = 0;
gc.gridy = 0;
//Button A added
this.add(new Button("Button A"), gc);
gc.gridx = 1;
gc.gridy = 0;
//Button B added
this.add(new Button("Button B"), gc);
gc.fill = GridBagConstraints.HORIZONTAL;
//increase component height by 20 pixels
gc.ipady = 20;
gc.gridx = 0;
gc.gridy = 1;
//Button C added
this.add(new Button("Button C"), gc);
gc.gridx = 1;
gc.gridy = 1;
///Button D added
this.add(new Button("Button D"), gc);
gc.gridx = 0;
gc.gridy = 2;
gc.fill = GridBagConstraints.HORIZONTAL;
gc.gridwidth = 2;
//Button E added
this.add(new Button("Button E"), gc);
// set the size
setSize(200, 300);
setPreferredSize(getSize());
//GUI visible to user
setVisible(true);
//exit on clicking close button
setDefaultCloseOperation(EXIT_ON_CLOSE);
)
)

Пример вывода:

Здесь создается GridBagLayout с пятью кнопками, такими как A, B, C, D и E. Несколько методов используются для установки размера, заголовка, видимости графического интерфейса и т. Д.

Программа № 2

//Java program to implement GridBagLayout
import java.awt.*;
import javax.swing.*;
public class GridExample (
//main method
public static void main(String() args) (
//object of JFrame
JFrame jf = new JFrame();
//exit on clicking close button
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//object of container
Container cn = jf.getContentPane();
//set layout
cn.setLayout(new GridBagLayout());
//object of constraints
GridBagConstraints gc = new GridBagConstraints();
gc.gridx = 0;
gc.gridy = GridBagConstraints.RELATIVE;
cn.add(new JButton("Button A"));
cn.add(new JButton("Button B"));
gc.fill = GridBagConstraints.HORIZONTAL;
cn.add(new JButton("Button c"));
// set the size
jf.setSize(400, 300);
//GUI visible to user
jf.setVisible(true);
)
)

Пример вывода:

Эта программа реализует GridBagLayout в другом методе. Но здесь заголовок не установлен и присутствуют только 3 кнопки.

Вывод

GridBagLayout - это один из мощных, гибких и сложных менеджеров компоновки в Java, который предлагается в пакете java.awt. Он выравнивает компоненты вертикально, горизонтально или вдоль линии. Синтаксис, конструктор, методы и реализация GridBagLayout описаны в этом документе.

Рекомендуемые статьи

Это руководство по GridBagLayout на Java. Здесь мы обсуждаем методы и программу для реализации GridBagLayout в Java. Вы также можете взглянуть на следующие статьи, чтобы узнать больше -

  1. Макет в Java
  2. JDialog в Java
  3. Java аннотации
  4. BorderLayout в Java
  5. Инструменты развертывания Java
  6. JFrame в Java
  7. HTML-макет