Computer >> Máy Tính >  >> Lập trình >> Java

Sự khác biệt giữa GridLayout và GridBagLayout trong Java là gì?

A GridLayout đặt tất cả các thành phần trong một lưới hình chữ nhật và được chia thành các hình chữ nhật có kích thước bằng nhau và mỗi thành phần được đặt bên trong một hình chữ nhật trong khi GridBagLayout là một linh hoạt bố cục người quản lý căn chỉnh các thành phần theo chiều dọc và chiều ngang mà không yêu cầu các thành phần phải có cùng kích thước. Mỗi GridBagLayout đối tượng duy trì một lưới ô hình chữ nhật, động với mỗi thành phần chiếm một hoặc nhiều ô được gọi là Thành phần hiển thị khu vực .

GridLayout

A GridLayout sắp xếp các thành phần trong một lưới hình chữ nhật. Nó sắp xếp thành phần trong các ô và mỗi ô có cùng kích thước . Các thành phần được đặt trong cột và hàng s . GridLayout (int hàng, int cột) nhận hai tham số là một cột và một hàng.

Ví dụ

import java.awt.*;
import javax.swing.*;
public class GridLayoutTest{
   GridLayoutTest() {
      JFrame frame = new JFrame("GridLayout Test");
      JButton button1, button2, button3, button4;
      button1 = new JButton("Button 1");
      button2 = new JButton("Button 2");
      button3 = new JButton("Button 3");
      button4 = new JButton("Button 4");
      frame.add(button1);
      frame.add(button2);
      frame.add(button3);
      frame.add(button4);
      frame.setLayout(new GridLayout(2,2));
      frame.setSize(300,300);
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.setVisible(true);
   }
   public static void main(String[] args) {
      new GridLayoutTest();
  }
}

Đầu ra

Sự khác biệt giữa GridLayout và GridBagLayout trong Java là gì?

GridBagLayout

A GridBagLayout mở rộng khả năng của GridLayout. GridBagLayout đặt thành phần trong từng ô riêng lẻ trong một lưới và cũng cho phép thành phần kéo dài đến nhiều cột hoặc nhiều hàng. Để sử dụng GridBagLayout , chúng tôi cần tạo GridBagConstraints đối tượng và điền các thuộc tính thích hợp.

Ví dụ

import javax.swing.*;
import java.awt.*;
public class GridBagLayoutTest extends JFrame {
   public GridBagLayoutTest() {
      setTitle("GridBagLayout Test");
      setLayout(new GridBagLayout());
      GridBagConstraints gbc = new GridBagConstraints();
      gbc.gridx = 5;
      gbc.gridy = 0;
      add(new JButton("Button1"), gbc);
      gbc.gridx = 0;
      gbc.gridy = 5;
      add(new JButton("Button2"), gbc);
      gbc.gridx = 2;
      gbc.gridy = 4;
      add(new JButton("Button3"), gbc);
   }
   public static void main(String[] args) {
      GridBagLayoutTest gbcTest = new GridBagLayoutTest();
      gbcTest.setSize(300,300);
      gbcTest.setVisible(true);
      gbcTest.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   }
}

Đầu ra

Sự khác biệt giữa GridLayout và GridBagLayout trong Java là gì?