Gridlayout в Java - Типы Конструкторов - Пример с реализацией

Содержание:

Anonim

Введение в GridLayout в Java

Менеджеры макетов используются в графическом программировании для организации компонентов определенным образом. Они используются для определения размера и положения компонента в контейнере. Доступны разные типы менеджеров по расположению. GridLayout является одним из них. GridLayout в Java делит контейнер на сетку ячеек, называемых строками и столбцами. Он размещает компоненты в прямоугольной сетке. Каждая ячейка может вместить только один компонент, одинакового размера и равнорасположенный друг к другу.

Пример: 3 строки и 4 столбца

1234
5678
9101112

Распространенные шаги-Gridlayout в Java

  1. Установка контейнера с помощью конструктора JFrame:
    JFrame frame = new JFrame ();
  2. Настройка менеджера компоновки панели с помощью конструктора JPanel:
    JPanel панель = новая JPanel ();
  3. Добавление компонентов в контейнер:
    panel.add (кнопка); frame.add (панель);
  4. Установка ориентации компонента:
    panel.setComponentOrientation (ComponentOrientation.LEFT_TO_RIGHT);
    Значение по умолчанию свойства ComponentOrientation заключается в том, что ориентация компонентов является горизонтальной и слева направо.

Типы конструкторов с примером

Ниже приведены типы конструкторов с примерами и кодом.

1. GridLayout ()

Пустой конструктор с одним столбцом на компонент в одной строке.

Код

import java.awt.*;
import javax.swing.*;
public class GridLayoutDemo (
public static void main(String() args) (
JFrame frame = new JFrame("Grid Layout");
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(200, 200);
JPanel panel = new JPanel();
panel.setLayout(new GridLayout());JButton button1 = new JButton("1");
JButton button2 = new JButton("2");
JButton button3 = new JButton("3");
JButton button4 = new JButton("4");
panel.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
panel.add(button1);
panel.add(button2);
panel.add(button3);
panel.add(button4);
frame.add(panel);
)
)

Выход:

2. GridLayout (строки int, столбцы int)

Конструктор с указанным количеством строк и столбцов.
Параметры:
rows - количество строк (нулевое значение означает любое количество строк).
столбцы - количество столбцов (значение ноль означает любое количество столбцов).

Код

import java.awt.*;
import javax.swing.*;
public class GridLayoutDemo (
public static void main(String() args) (
JFrame frame = new JFrame("Grid Layout");
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(200, 200);
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(2, 2));
JButton button1 = new JButton("1");
JButton button2 = new JButton("2");
JButton button3 = new JButton("3");
JButton button4 = new JButton("4");
panel.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
panel.add(button1);
panel.add(button2);
panel.add(button3);
panel.add(button4);
frame.add(panel);
)
)

Выход:

3. GridLayout (int row, int столбцы, int горизонтальный разрыв, int вертикальный разрыв).

Конструктор с указанным количеством строк и столбцов, горизонтальными и вертикальными промежутками между строками и столбцами.
Параметры:
rows - количество строк (нулевое значение означает любое количество строк).
столбцы - количество столбцов (значение ноль означает любое количество столбцов).
горизонтальный зазор - между каждым из столбцов
вертикальный зазор - между каждым из рядов
Броски:
IllegalArgumentException - если значение как строк, так и столбцов установлено в ноль.

Код

import java.awt.*;import javax.swing.*;
public class GridLayoutDemo (
public static void main(String() args) (
JFrame frame = new JFrame("Grid Layout");
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(200, 200);
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(2, 2, 5, 10));
JButton button1 = new JButton("1");
JButton button2 = new JButton("2");JButton button3 = new JButton("3");
JButton button4 = new JButton("4");
panel.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
panel.add(button1);
panel.add(button2);
panel.add(button3);
panel.add(button4);
frame.add(panel);
)
)

Выход:

Пример с реализацией

Случай: в приведенной ниже программе всякий раз, когда эффект наведения мыши происходит над ячейкой сетки, ее цвет меняется с черного на белый.

Код

import java.awt.*;
import javax.swing.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class gridLayout extends JPanel(
public gridLayout() (
super(new GridLayout(3, 3));
JLabel label1, label2, label3, label4, label5, label6, label7, label8, label9;
//create the lables
label1 = new JLabel();
label2 = new JLabel();
label3 = new JLabel();
label4 = new JLabel();
label5 = new JLabel();
label6 = new JLabel();
label7 = new JLabel();
label8 = new JLabel();
label9 = new JLabel();
//set the background color for each label
label1.setBackground(Color.BLACK);
label1.setOpaque(true);
label2.setBackground(Color.BLACK);
label2.setOpaque(true);
label3.setBackground(Color.BLACK);
label3.setOpaque(true);
label4.setBackground(Color.BLACK);
label4.setOpaque(true);
label5.setBackground(Color.BLACK);
label5.setOpaque(true);
label6.setBackground(Color.BLACK);
label6.setOpaque(true);
label7.setBackground(Color.BLACK);
label7.setOpaque(true);
label8.setBackground(Color.BLACK);
label8.setOpaque(true);
label9.setBackground(Color.BLACK);
label9.setOpaque(true);
//add mouse listeners for each label
label1.addMouseListener(new MouseAdapter() (
public void mouseEntered(MouseEvent me) (
label1.setBackground(Color.WHITE);
)
public void mouseExited(MouseEvent me) (
label1.setBackground(Color.BLACK);
)
));
label2.addMouseListener(new MouseAdapter() (
public void mouseEntered(MouseEvent me) (
label2.setBackground(Color.WHITE);
)
public void mouseExited(MouseEvent me) (
label2.setBackground(Color.BLACK);
)
));
label3.addMouseListener(new MouseAdapter() (
public void mouseEntered(MouseEvent me) (
label3.setBackground(Color.WHITE);)
public void mouseExited(MouseEvent me) (
label3.setBackground(Color.BLACK);
)
));
label4.addMouseListener(new MouseAdapter() (
public void mouseEntered(MouseEvent me) (
label4.setBackground(Color.WHITE);
)
public void mouseExited(MouseEvent me) (
label4.setBackground(Color.BLACK);)
));
label5.addMouseListener(new MouseAdapter() (
public void mouseEntered(MouseEvent me) (
label5.setBackground(Color.WHITE);
)
public void mouseExited(MouseEvent me) (
label5.setBackground(Color.BLACK);
)));
label6.addMouseListener(new MouseAdapter() (
public void mouseEntered(MouseEvent me) (
label6.setBackground(Color.WHITE);
)
public void mouseExited(MouseEvent me) (
label6.setBackground(Color.BLACK);
)
));
label7.addMouseListener(new MouseAdapter() (
public void mouseEntered(MouseEvent me) (
label7.setBackground(Color.WHITE);
)
public void mouseExited(MouseEvent me) (
label7.setBackground(Color.BLACK);
)
));
label8.addMouseListener(new MouseAdapter() (
public void mouseEntered(MouseEvent me) (
label8.setBackground(Color.WHITE);
)
public void mouseExited(MouseEvent me) (
label8.setBackground(Color.BLACK);
)
));label9.addMouseListener(new MouseAdapter() (
public void mouseEntered(MouseEvent me) (
label9.setBackground(Color.WHITE);
)
public void mouseExited(MouseEvent me) (
label9.setBackground(Color.BLACK);
)
));
//add the labels
add(label1);
add(label2);
add(label3);
add(label4);
add(label5);
add(label6);
add(label7);
add(label8);
add(label9);
)
private static void createAndShowGUI() (
//create and setup the container
JFrame frame = new JFrame("Gridlayout Demo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 300);
//add content to the container
frame.add(new gridLayout());
//display the container
frame.pack();
frame.setVisible(true);
)public static void main(String() args) (
createAndShowGUI();
)
)

Выход:

Вывод

Gridlayout в Java полезен, когда вы хотите создать сетки в контейнере вместе с одним условием, т.е. каждая ячейка сетки имеет одинаковый размер и одинаковое расстояние.
Есть и другие доступные методы, как указано ниже:
1. getRows () - Получить количество строк.
2. setRows (int i) - установить количество строк в указанное значение.
3. getColumns () - Получить количество столбцов.
4. setColumns (int i) - Установить количество столбцов в указанное значение.
5. getHgap () - Получает горизонтальный зазор между компонентами.
6. setHgap (int i) - установить горизонтальный зазор между компонентами на указанное значение.
7.getVgap () - Получает вертикальный разрыв между компонентами.
8. setVgap (int i) - Установите вертикальный зазор между компонентами на указанное значение.
9. addLayoutComponent (String name, Component comp) - добавляет указанный макет с указанным именем в макет.
10. removeLayoutComponent (Компонент комп) - удаляет указанный компонент из макета контейнера.
11. предпочитаемый размер (родительский контейнер) - определяет предпочтительный размер контейнера.
12.imumLayoutSize (Container parent) - Определяет минимальный размер контейнера.
13. layoutContainer (родительский контейнер) - Размещает указанный контейнер.

14. toString () - Возвращает строковое представление значений макета сетки.

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

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

  1. Сортировка слиянием в Java
  2. Макет в Java
  3. Лучшие компиляторы Java
  4. Деструктор на Яве
  5. HTML-макет