Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java에서 GridLayout과 GridBagLayout의 차이점은 무엇입니까?

<시간/>

GridLayout 모든 구성요소를 직사각형 그리드에 넣고 같은 크기의 직사각형으로 나눕니다. 각 구성요소는 직사각형 안에 배치되는 반면 GridBagLayout 유연한 레이아웃 관리자 구성요소를 수직 및 수평 정렬 구성 요소의 크기가 동일하지 않아도 됩니다. 각 GridBagLayout 개체는 동적 직사각형 셀 그리드를 유지합니다. 구성요소 라는 하나 이상의 셀을 차지하는 각 구성요소 디스플레이 영역 .

그리드 레이아웃

A 그리드 레이아웃 사각형 격자에 구성 요소를 정렬합니다. 셀의 구성 요소를 정렬하며 각 셀은 동일한 크기를 갖습니다. . 구성요소는 열 및 행에 배치됩니다. . GridLayout(int 행, int 열) 열과 행인 두 개의 매개변수를 사용합니다.

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();
  }
}

출력

Java에서 GridLayout과 GridBagLayout의 차이점은 무엇입니까?

그리드백 레이아웃

A GridBagLayout GridLayout의 기능을 확장합니다. 그리드백 레이아웃 그리드의 각 개별 셀에 구성요소를 배치하고 구성요소가 여러 열 또는 행으로 확장되도록 합니다. GridBagLayout을 사용하려면 , GridBagConstraints 를 생성해야 합니다. 개체 적절한 속성을 채우십시오.

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);
   }
}

출력

Java에서 GridLayout과 GridBagLayout의 차이점은 무엇입니까?