logo

자바 박스레이아웃

그만큼 자바 BoxLayout 클래스 구성요소를 수직 또는 수평으로 배열하는 데 사용됩니다. 이를 위해 BoxLayout 클래스는 네 가지 상수를 제공합니다. 그것들은 다음과 같습니다:

참고: BoxLayout 클래스는 javax.swing 패키지에 있습니다.

BoxLayout 클래스의 필드

    공개 정적 최종 int X_AXIS:구성 요소의 정렬은 왼쪽에서 오른쪽으로 수평입니다.공개 정적 최종 int Y_AXIS:구성 요소의 정렬은 위에서 아래로 수직입니다.공개 정적 최종 int LINE_AXIS:구성 요소 정렬은 컨테이너의 ComponentOrientation 속성을 기반으로 한 줄에서 단어가 정렬되는 방식과 유사합니다. 컨테이너의 ComponentOrientation 속성이 수평이면 구성 요소가 수평으로 정렬됩니다. 그렇지 않으면 구성요소가 수직으로 정렬됩니다. 수평 방향의 경우 왼쪽에서 오른쪽, 오른쪽에서 왼쪽의 두 가지 경우가 있습니다. 컨테이너의 ComponentOrientation 속성 값이 왼쪽에서 오른쪽인 경우 구성 요소는 왼쪽에서 오른쪽으로 렌더링되고, 오른쪽에서 왼쪽의 경우 구성 요소 렌더링도 오른쪽에서 왼쪽으로 렌더링됩니다. 수직 방향의 경우 구성 요소는 항상 위에서 아래로 렌더링됩니다.공개 정적 최종 int PAGE_AXIS:구성 요소 정렬은 컨테이너의 ComponentOrientation 속성을 기반으로 페이지에 텍스트 줄을 배치하는 방식과 유사합니다. 컨테이너의 ComponentOrientation 속성이 가로인 경우 구성 요소는 세로로 정렬됩니다. 그렇지 않으면 구성요소가 수평으로 정렬됩니다. 수평 방향의 경우 왼쪽에서 오른쪽, 오른쪽에서 왼쪽의 두 가지 경우가 있습니다. 컨테이너의 ComponentOrientation 속성 값도 왼쪽에서 오른쪽인 경우 구성 요소는 왼쪽에서 오른쪽으로 렌더링되고, 오른쪽에서 왼쪽의 경우 구성 요소 렌더링은 오른쪽에서 왼쪽으로 수행됩니다. 수직 방향의 경우 구성 요소는 항상 위에서 아래로 렌더링됩니다.

BoxLayout 클래스의 생성자

    BoxLayout(컨테이너 c, int 축):주어진 축으로 구성요소를 정렬하는 상자 레이아웃을 생성합니다.

Y축이 있는 BoxLayout 클래스의 예:

파일 이름: BoxLayoutExample1.java

 import java.awt.*; import javax.swing.*; public class BoxLayoutExample1 extends Frame { Button buttons[]; public BoxLayoutExample1 () { buttons = new Button [5]; for (int i = 0;i<5;i++) { buttons[i]="new" button ('button ' + (i 1)); adding the buttons so that it can be displayed add (buttons[i]); } will placed horizontally setlayout (new boxlayout (this, boxlayout.y_axis)); setsize(400,400); setvisible(true); main method public static void main(string args[]){ boxlayoutexample1 b="new" boxlayoutexample1(); < pre> download this example <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/layout-manager/08/java-boxlayout.webp" alt="BoxLayout class example"> <h3>Example of BoxLayout class with X-AXIS</h3> <p> <strong>FileName:</strong> BoxLayoutExample2.java</p> <pre> import java.awt.*; import javax.swing.*; public class BoxLayoutExample2 extends Frame { Button buttons[]; public BoxLayoutExample2() { buttons = new Button [5]; for (int i = 0;i<5;i++) { buttons[i]="new" button ('button ' + (i 1)); adding the buttons so that it can be displayed add (buttons[i]); } in output will aligned vertically setlayout (new boxlayout(this, boxlayout.x_axis)); setsize(400,400); setvisible(true); main method public static void main(string args[]){ boxlayoutexample2 b="new" boxlayoutexample2(); < pre> download this example <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/layout-manager/08/java-boxlayout-2.webp" alt="BoxLayout class example"> <h3>Example of BoxLayout Class with LINE_AXIS</h3> <p>The following example shows the effect of setting the value of ComponentOrientation property of the container to RIGHT_TO_LEFT. If we do not set the value of ComponentOrientation property, then the components would be laid out from left to right. Comment line 11, and see it yourself.</p> <p> <strong>FileName:</strong> BoxLayoutExample3.java</p> <pre> // import statements import java.awt.*; import javax.swing.*; public class BoxLayoutExample3 extends Frame { Button buttons[]; // constructor of the class public BoxLayoutExample3() { buttons = new Button[5]; setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT); // line 11 for (int i = 0; i <5; i++) { buttons[i]="new" button ('button ' + (i 1)); adding the buttons so that it can be displayed add (buttons[i]); } componentorientation is set to right_to_left. therefore, added will rendered from right left setlayout (new boxlayout(this, boxlayout.line_axis)); setsize(400, 400); setvisible(true); main method public static void main(string argvs[]) creating an object of class boxlayoutexample3 obj="new" boxlayoutexample3(); < pre> <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/layout-manager/08/java-boxlayout.webp" alt="BoxLayout class example"> <h3>Example of BoxLayout Class with PAGE_AXIS</h3> <p>The following example shows how to use PAGE_AXIS.</p> <p> <strong>FileName:</strong> BoxLayoutExample4.java</p> <pre> // import statements import java.awt.*; import javax.swing.*; public class BoxLayoutExample4 extends Frame { Button buttons[]; // constructor of the class public BoxLayoutExample4() { JFrame f = new JFrame(); JPanel pnl = new JPanel(); buttons = new Button[5]; GridBagConstraints constrntObj = new GridBagConstraints(); constrntObj.fill = GridBagConstraints.VERTICAL; for (int i = 0; i <5; i++) { buttons[i]="new" button ('button ' + (i 1)); adding the buttons so that it can be displayed add(buttons[i]); } components will just like line is present on a page setlayout (new boxlayout(this, boxlayout.page_axis)); setsize(400, 400); setvisible(true); main method public static void main(string argvs[]) creating an object of class boxlayoutexample4 obj="new" boxlayoutexample4(); < pre> <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/layout-manager/08/java-boxlayout-2.webp" alt="BoxLayout class example"> <p>The above output shows that the buttons are aligned horizontally. Now, we will display the buttons vertically using the PAGE_AXIS.</p> <p> <strong>FileName:</strong> BoxLayoutExample5.java</p> <pre> // import statementss import java.awt.*; import javax.swing.*; public class BoxLayoutExample5 extends Frame { Button buttons[]; // constructor of the class public BoxLayoutExample5() { JFrame f = new JFrame(); buttons = new Button[5]; // Creating a Box whose alignment is horizontal Box horizontalBox = Box.createHorizontalBox(); // ContentPane returns a container Container contentPane = f.getContentPane(); for (int i = 0; i <5; i++) { buttons[i]="new" button ('button ' + (i 1)); adding the buttons to box so that it can be displayed horizontalbox.add(buttons[i]); } and borderlayout content pane contentpane.add(horizontalbox, borderlayout.north); now, rendered components are vertically. is because aligned horizontally f.setlayout (new boxlayout(contentpane, boxlayout.page_axis)); f.setsize(400, 400); f.setvisible(true); main method public static void main(string argvs[]) creating an object of class boxlayoutexample5 obj="new" boxlayoutexample5(); < pre> <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/layout-manager/08/java-boxlayout-3.webp" alt="BoxLayout class example"> <hr></5;></pre></5;></pre></5;></pre></5;i++)></pre></5;i++)>