Gridlayout на Java - Типи конструкторів - Приклад із реалізацією

Зміст:

Anonim

Введення в GridLayout на Java

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

Приклад: 3 ряди та 4 стовпчики

1234
5678
9101112

Поширені кроки-Gridlayout на Java

  1. Налаштування контейнера за допомогою конструктора JFrame:
    JFrame frame = новий 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 стовпці)

Конструктор із заданою кількістю рядків та стовпців.
Параметри:
рядки - кількість рядків (значення нуля означає будь-яке число рядків).
стовпці - кількість стовпців (значення нуль означає будь-яке число стовпців).

Код

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 рядки, int стовпчики, int горизонтальний зазор, int вертикальний зазор).

Конструктор із заданою кількістю рядків і стовпців, горизонтальними та вертикальними проміжками між рядками та стовпцями.
Параметри:
рядки - кількість рядків (значення нуля означає будь-яке число рядків).
стовпці - кількість стовпців (значення нуль означає будь-яке число стовпців).
горизонтальний зазор - між кожними стовпцями
вертикальний зазор- між кожним рядом
Кидає:
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 (ім'я рядка, комп. Компонента) - додає вказаний компонент із зазначеним іменем у макет.
10. deleteLayoutComponent (Component comp) - видаляє вказаний компонент з компонування контейнера.
11. preferenceLayoutSize (батьківський контейнер) - визначає бажаний розмір контейнера.
12. minimalLayoutSize (батьківський контейнер) - визначає мінімальний розмір контейнера.
13. layoutContainer (батьківський контейнер) - викладає вказаний контейнер.

14. toString () - Повертає рядкове подання значень макета сітки.

Рекомендовані статті

Це посібник з Gridlayout на Java. Тут ми обговорили типи конструкторів із прикладами, коди з реалізацією. Ви також можете ознайомитись з іншими пов'язаними з нами статтями, щоб дізнатися більше -

  1. Об’єднання Сортування в Java
  2. Макет на Java
  3. Кращі компілятори Java
  4. Деструктор на Java
  5. Макет HTML