logo

BorderLayout(LayoutManager)

Java 레이아웃 관리자

LayoutManager는 특정 방식으로 구성 요소를 정렬하는 데 사용됩니다. 그만큼 Java 레이아웃 관리자 GUI 형태로 구성 요소의 위치와 크기를 제어할 수 있습니다. LayoutManager는 레이아웃 관리자의 모든 클래스에 의해 구현되는 인터페이스입니다. 레이아웃 관리자를 나타내는 다음 클래스가 있습니다.

  1. java.awt.BorderLayout
  2. java.awt.FlowLayout
  3. java.awt.GridLayout
  4. java.awt.CardLayout
  5. java.awt.GridBagLayout
  6. javax.swing.BoxLayout
  7. javax.swing.GroupLayout
  8. javax.swing.ScrollPaneLayout
  9. javax.swing.SpringLayout 등

자바 테두리 레이아웃

BorderLayout은 북쪽, 남쪽, 동쪽, 서쪽, 중앙의 5개 지역에 구성 요소를 배열하는 데 사용됩니다. 각 지역(영역)에는 하나의 구성요소만 포함될 수 있습니다. 프레임이나 창의 기본 레이아웃입니다. BorderLayout은 각 영역에 대해 5개의 상수를 제공합니다.

    공개 정적 최종 int NORTH 공개 정적 최종 int SOUTH 공개 정적 최종 int EAST 공개 정적 최종 int WEST 공개 정적 최종 int CENTER

BorderLayout 클래스의 생성자:

    테두리레이아웃():테두리 레이아웃을 생성하지만 구성 요소 사이에 간격이 없습니다.BorderLayout(int hgap, int vgap):구성 요소 사이에 지정된 가로 및 세로 간격이 있는 테두리 레이아웃을 만듭니다.

BorderLayout 클래스의 예: BorderLayout() 생성자 사용

파일 이름: Border.java

 import java.awt.*; import javax.swing.*; public class Border { JFrame f; Border() { f = new JFrame(); // creating buttons JButton b1 = new JButton('NORTH');; // the button will be labeled as NORTH JButton b2 = new JButton('SOUTH');; // the button will be labeled as SOUTH JButton b3 = new JButton('EAST');; // the button will be labeled as EAST JButton b4 = new JButton('WEST');; // the button will be labeled as WEST JButton b5 = new JButton('CENTER');; // the button will be labeled as CENTER f.add(b1, BorderLayout.NORTH); // b1 will be placed in the North Direction f.add(b2, BorderLayout.SOUTH); // b2 will be placed in the South Direction f.add(b3, BorderLayout.EAST); // b2 will be placed in the East Direction f.add(b4, BorderLayout.WEST); // b2 will be placed in the West Direction f.add(b5, BorderLayout.CENTER); // b2 will be placed in the Center f.setSize(300, 300); f.setVisible(true); } public static void main(String[] args) { new Border(); } } 

산출:

BorderLayout 클래스이 예제를 다운로드하세요

BorderLayout 클래스의 예: BorderLayout(int hgap, int vgap) 생성자 사용

다음 예제에서는 매개변수화된 생성자 BorderLayout(int hgap, int gap)을 사용하여 버튼 사이에 가로 및 세로 간격을 삽입합니다.

파일 이름: BorderLayoutExample.java

 // import statement import java.awt.*; import javax.swing.*; public class BorderLayoutExample { JFrame jframe; // constructor BorderLayoutExample() { // creating a Frame jframe = new JFrame(); // create buttons JButton btn1 = new JButton('NORTH'); JButton btn2 = new JButton('SOUTH'); JButton btn3 = new JButton('EAST'); JButton btn4 = new JButton('WEST'); JButton btn5 = new JButton('CENTER'); // creating an object of the BorderLayout class using // the parameterized constructor where the horizontal gap is 20 // and vertical gap is 15. The gap will be evident when buttons are placed // in the frame jframe.setLayout(new BorderLayout(20, 15)); jframe.add(btn1, BorderLayout.NORTH); jframe.add(btn2, BorderLayout.SOUTH); jframe.add(btn3, BorderLayout.EAST); jframe.add(btn4, BorderLayout.WEST); jframe.add(btn5, BorderLayout.CENTER); jframe.setSize(300,300); jframe.setVisible(true); } // main method public static void main(String argvs[]) { new BorderLayoutExample(); } } 

산출:

BorderLayout 클래스

Java BorderLayout: 지역을 지정하지 않음

JFrame 클래스의 add() 메서드는 영역을 지정하지 않은 경우에도 작동할 수 있습니다. 이러한 경우에는 가장 최근에 추가된 구성요소만 프레임에 표시되고 이전에 추가된 구성요소는 모두 삭제됩니다. 최신 구성 요소가 전체 영역을 포괄합니다. 다음 예에서는 동일한 내용을 보여줍니다.

파일 이름: BorderLayoutWithoutRegionExample.java

 // import statements import java.awt.*; import javax.swing.*; public class BorderLayoutWithoutRegionExample { JFrame jframe; // constructor BorderLayoutWithoutRegionExample() { jframe = new JFrame(); JButton btn1 = new JButton('NORTH'); JButton btn2 = new JButton('SOUTH'); JButton btn3 = new JButton('EAST'); JButton btn4 = new JButton('WEST'); JButton btn5 = new JButton('CENTER'); // horizontal gap is 7, and the vertical gap is 7 // Since region is not specified, the gaps are of no use jframe.setLayout(new BorderLayout(7, 7)); // each button covers the whole area // however, the btn5 is the latest button // that is added to the frame; therefore, btn5 // is shown jframe.add(btn1); jframe.add(btn2); jframe.add(btn3); jframe.add(btn4); jframe.add(btn5); jframe.setSize(300,300); jframe.setVisible(true); } // main method public static void main(String argvs[]) { new BorderLayoutWithoutRegionExample(); } } 

산출:

BorderLayout 클래스