JavaTM Platform
Standard Ed. 6

javax.swing
클래스 BoxLayout

java.lang.Object 
  상위를 확장 javax.swing.BoxLayout
모든 구현된 인터페이스:
LayoutManager , LayoutManager2 , Serializable
직계의 기존의 서브 클래스:
DefaultMenuLayout


public class BoxLayout
extends Object
implements LayoutManager2 , Serializable

복수의 컴퍼넌트를, 수직 방향에도 수평 방향에도 배치할 수 있도록(듯이) 하는, 레이아웃 매니저입니다. 컴퍼넌트는 되접어 꺾이지 않고 배치되므로, 예를 들어, 수직에 늘어놓을 수 있었던 컴퍼넌트는, 프레임의 사이즈가 변경되어도 수직에 줄선대로 입니다.

다음의 문장은, 이 그림에 대해 설명하고 있습니다.

수평 및 수직이 다른 편성을 가지는 복수의 패널을 상자로 하면(자), GridBagLayout 와 같은 효과를 간단하게 실현될 수 있습니다. 위의 그림에서는, 수평 방향으로 늘어놓을 수 있었던 2 개의 패널에, 수직 방향으로 늘어놓을 수 있었던 3 개의 컴퍼넌트가 각각 포함되어 있습니다.

BoxLayout 매니저는, 레이아웃의 종류를 지정하는 축파라미터로 구축됩니다. 다음의 4 개의 선택사항이 있습니다.

X_AXIS - 컴퍼넌트는 왼쪽에서 오른쪽에 수평에 배치됩니다.
Y_AXIS - 컴퍼넌트는 위에서 밑으로 수직에 배치됩니다.
LINE_AXIS - 컴퍼넌트는 컨테이너의 ComponentOrientation 프로퍼티에 근거해, 단어를 행에 배치하는 것과 같은 방법으로 배치됩니다. 컨테이너의 ComponentOrientation 가 수평 방향의 경우, 컴퍼넌트는 수평 방향으로 배치되어 수직 방향의 경우는 수직 방향으로 배치됩니다. 수평 배치에서는, 컨테이너의 ComponentOrientation 가 왼쪽에서 오른쪽에의 배치의 경우는, 컴퍼넌트는 왼쪽에서 오른쪽으로 배치되어 그렇지 않은 경우는 오른쪽에서 왼쪽으로 배치됩니다. 수직 배치에서는, 컴퍼넌트는 항상 위에서 아래로 배치됩니다.
PAGE_AXIS - 컴퍼넌트는 컨테이너의 ComponentOrientation 프로퍼티에 근거해, 텍스트행을 페이지에 배치하는 것과 같은 방법으로 배치됩니다. 컨테이너의 ComponentOrientation 가 수평 방향의 경우, 컴퍼넌트는 수직 방향으로 배치되어 수직 방향의 경우는 수평 방향으로 배치됩니다. 수평 배치에서는, 컨테이너의 ComponentOrientation 가 왼쪽에서 오른쪽에의 배치의 경우는, 컴퍼넌트는 왼쪽에서 오른쪽으로 배치되어 그렇지 않은 경우는 오른쪽에서 왼쪽으로 배치됩니다.  수직 배치에서는, 컴퍼넌트는 항상 위에서 아래로 배치됩니다.

어느 방향으로 배치되는 경우에서도, 컴퍼넌트는 컨테이너에 추가된 순서로 배치됩니다.

BoxLayout 는, 수평 레이아웃의 경우는 그 최적인 폭, 수직 레이아웃의 경우는 최적인 높이에 따라 컴퍼넌트를 배치하려고 합니다. 수평 레이아웃의 경우, 모든 컴퍼넌트가 같은 높이가 아니라도, BoxLayout 는 각 컴퍼넌트를 가장 높은 컴퍼넌트와 같은 높이에 가지런히 하려고 합니다. 특정의 컴퍼넌트로 이것이 불가능한 경우는, 그 컴퍼넌트의 Y 방향의 위치 맞춤용의 값에 따라, 컴퍼넌트를 세로에 정렬합니다. 디폴트에서는, 컴퍼넌트의 Y 방향의 위치 맞춤용의 값은 0.5 입니다. 이것은, 컴퍼넌트의 상하 방향의 중심의 Y 좌표가, Y 방향의 위치 맞춤용의 값이 0.5 의 다른 컴퍼넌트의 상하 방향의 중심과 같게 되는 것을 의미합니다.

같이 수직 레이아웃의 경우도, BoxLayout 는 열의 모든 컴퍼넌트의 폭을 최대폭에 가지런히 하도록(듯이) 시행합니다. 이것에 실패했을 경우는, X 방향의 위치 맞춤용의 값에 따라, 컴퍼넌트를 수평 방향으로 정렬합니다. PAGE_AXIS 레이아웃에서는, 컴퍼넌트의 첨단 위치를 기준으로 해 정렬됩니다. X 방향의 위치 맞춤용의 값이 0.0 의 경우, 기준 위치는 컨테이너의 ComponentOrientation 가 왼쪽에서 우측향이면 컨테이너의 좌단이 되어, 오른쪽으로부터 좌방향이면 컨테이너의 우단이 됩니다.

많은 프로그램에서는 BoxLayout 가 직접 사용되는 대신에, Box 클래스가 사용됩니다. Box 클래스는, BoxLayout 를 사용하는 경량 컨테이너입니다. BoxLayout 를 효과적으로 사용하기 위해서 도움이 되는 편리한 메소드를 제공합니다. 상자가 된 복수의 박스에의 컴퍼넌트 추가에 의해, 필요한 배치를 용이하게 얻을 수 있습니다.

상세와 사용예에 대해서는,「The Java Tutorial」「How to Use BoxLayout」를 참조해 주세요.

경고: 이 클래스의 직렬화 된 객체는, 향후의 Swing 릴리스와 호환은 아니게 될 예정입니다. 현재의 직렬화의 지원는, 단기간의 운용이나, 같은 버젼의 Swing 를 실행하는 어플리케이션간의 RMI 에 적절하고 있습니다. JDK Version 1.4 이후, 모든 JavaBeans 의 장기간의 운용 지원는,java.beans 패키지에 추가되고 있습니다. 자세한 것은,XMLEncoder 를 참조해 주세요.

관련 항목:
Box , ComponentOrientation , JComponent.getAlignmentX() , JComponent.getAlignmentY()

필드의 개요
static int LINE_AXIS
          타겟 컨테이너의 ComponentOrientation 프로퍼티의 결정에 따라, 텍스트행의 방향으로 컴퍼넌트의 배치를 지정합니다.
static int PAGE_AXIS
          타겟 컨테이너의 ComponentOrientation 프로퍼티의 결정에 따라, 복수의 페이지에 걸쳐 행이 나갈 방향으로 컴퍼넌트가 배치되도록(듯이) 지정합니다.
static int X_AXIS
          컴퍼넌트의 배치의 방향을 왼쪽에서 오른쪽으로 지정합니다.
static int Y_AXIS
          컴퍼넌트의 배치의 방향을 위에서 아래로 지정합니다.
 
생성자 의 개요
BoxLayout (Container  target, int axis)
          컴퍼넌트가 지정된 방향으로 배치하는 레이아웃 매니저를 생성합니다.
 
메소드의 개요
 void addLayoutComponent (Component  comp, Object  constraints)
          이 클래스에서는 사용하지 않습니다.
 void addLayoutComponent (String  name, Component  comp)
          이 클래스에서는 사용하지 않습니다.
 int getAxis ()
          컴퍼넌트의 배치에 사용된 축을 돌려줍니다.
 float getLayoutAlignmentX (Container  target)
          컨테이너의 X 축으로 따른 배치 방법을 돌려줍니다.
 float getLayoutAlignmentY (Container  target)
          컨테이너의 Y 축으로 따른 배치 방법을 돌려줍니다.
 Container getTarget ()
          이 레이아웃 매니저를 사용하는 컨테이너를 돌려줍니다.
 void invalidateLayout (Container  target)
          아이의 레이아웃 정보가 변경된 것을 나타냅니다.
 void layoutContainer (Container  target)
          지정된 컨테이너를 배치할 필요가 있을 때 AWT 에 의해 불려 갑니다.
 Dimension maximumLayoutSize (Container  target)
          타겟 컨테이너가 자신의 컴퍼넌트를 배치할 경우에 사용할 수 있는, 최대의 치수를 돌려줍니다.
 Dimension minimumLayoutSize (Container  target)
          지정된 타겟 컨테이너에 포함되는 컴퍼넌트의 레이아웃에 필요한 최소 치수를 돌려줍니다.
 Dimension preferredLayoutSize (Container  target)
          지정된 타겟 컨테이너에 있는 컴퍼넌트에 대해, 이 레이아웃의 추천 치수를 돌려줍니다.
 void removeLayoutComponent (Component  comp)
          이 클래스에서는 사용하지 않습니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

필드의 상세

X_AXIS

public static final int X_AXIS
컴퍼넌트의 배치의 방향을 왼쪽에서 오른쪽으로 지정합니다.

관련 항목:
정수 필드치

Y_AXIS

public static final int Y_AXIS
컴퍼넌트의 배치의 방향을 위에서 아래로 지정합니다.

관련 항목:
정수 필드치

LINE_AXIS

public static final int LINE_AXIS
타겟 컨테이너의 ComponentOrientation 프로퍼티의 결정에 따라, 텍스트행의 방향으로 컴퍼넌트의 배치를 지정합니다.

관련 항목:
정수 필드치

PAGE_AXIS

public static final int PAGE_AXIS
타겟 컨테이너의 ComponentOrientation 프로퍼티의 결정에 따라, 복수의 페이지에 걸쳐 행이 나갈 방향으로 컴퍼넌트가 배치되도록(듯이) 지정합니다.

관련 항목:
정수 필드치
생성자 의 상세

BoxLayout

public BoxLayout(Container  target,
                 int axis)
컴퍼넌트가 지정된 방향으로 배치하는 레이아웃 매니저를 생성합니다.

파라미터:
target - 배치할 필요가 있는 컨테이너
axis - 배치할 필요가 있는 컨테이너 컴퍼넌트의 배치 방향. BoxLayout.X_AXIS, BoxLayout.Y_AXIS. BoxLayout.LINE_AXIS 또는 BoxLayout.PAGE_AXIS
예외:
AWTError - axis 의 값이 무효인 경우
메소드의 상세

getTarget

public final Container  getTarget()
이 레이아웃 매니저를 사용하는 컨테이너를 돌려줍니다.

반환값:
이 레이아웃 매니저를 사용하는 컨테이너
도입된 버젼:
1.6

getAxis

public final int getAxis()
컴퍼넌트의 배치에 사용된 축을 돌려줍니다. 다음의 어느쪽이든을 돌려줍니다. BoxLayout.X_AXIS,BoxLayout.Y_AXIS,BoxLayout.LINE_AXIS, 또는 BoxLayout.PAGE_AXIS 의 어떤 것인가

반환값:
컴퍼넌트의 배치에 사용된 축
도입된 버젼:
1.6

invalidateLayout

public void invalidateLayout(Container  target)
아이의 레이아웃 정보가 변경된 것을 나타냅니다. 캐쉬되고 있던 계산치는 모두 플래시 됩니다.

이 메소드는, 컨테이너로 무효인 메소드가 불려 갔을 때에 AWT 에 의해 불려 갑니다. 무효인 메소드는 이벤트 thread에 비동기적으로 호출할 수가 있기 (위해)때문에, 이 메소드도 비동기적으로 호출할 수가 있습니다.

정의:
인터페이스 LayoutManager2 내의 invalidateLayout
파라미터:
target - 영향을 받는 컨테이너
예외:
AWTError - 타겟이 BoxLayout 생성자 으로 지정되었다 컨테이너가 아닌 경우

addLayoutComponent

public void addLayoutComponent(String  name,
                               Component  comp)
이 클래스에서는 사용하지 않습니다.

정의:
인터페이스 LayoutManager 내의 addLayoutComponent
파라미터:
name - 컴퍼넌트의 이름
comp - 컴퍼넌트

removeLayoutComponent

public void removeLayoutComponent(Component  comp)
이 클래스에서는 사용하지 않습니다.

정의:
인터페이스 LayoutManager 내의 removeLayoutComponent
파라미터:
comp - 컴퍼넌트

addLayoutComponent

public void addLayoutComponent(Component  comp,
                               Object  constraints)
이 클래스에서는 사용하지 않습니다.

정의:
인터페이스 LayoutManager2 내의 addLayoutComponent
파라미터:
comp - 컴퍼넌트
constraints - 제약

preferredLayoutSize

public Dimension  preferredLayoutSize(Container  target)
지정된 타겟 컨테이너에 있는 컴퍼넌트에 대해, 이 레이아웃의 추천 치수를 돌려줍니다.

정의:
인터페이스 LayoutManager 내의 preferredLayoutSize
파라미터:
target - 배치할 필요가 있는 컨테이너
반환값:
0 이상으로 Integer.MAX_VALUE 이하의 사이즈
예외:
AWTError - 타겟이 BoxLayout 생성자 으로 지정되었다 컨테이너가 아닌 경우
관련 항목:
Container , minimumLayoutSize(java.awt.Container) , maximumLayoutSize(java.awt.Container)

minimumLayoutSize

public Dimension  minimumLayoutSize(Container  target)
지정된 타겟 컨테이너에 포함되는 컴퍼넌트의 레이아웃에 필요한 최소 치수를 돌려줍니다.

정의:
인터페이스 LayoutManager 내의 minimumLayoutSize
파라미터:
target - 배치할 필요가 있는 컨테이너
반환값:
0 이상으로 Integer.MAX_VALUE 이하의 사이즈
예외:
AWTError - 타겟이 BoxLayout 생성자 으로 지정되었다 컨테이너가 아닌 경우
관련 항목:
preferredLayoutSize(java.awt.Container) , maximumLayoutSize(java.awt.Container)

maximumLayoutSize

public Dimension  maximumLayoutSize(Container  target)
타겟 컨테이너가 자신의 컴퍼넌트를 배치할 경우에 사용할 수 있는, 최대의 치수를 돌려줍니다.

정의:
인터페이스 LayoutManager2 내의 maximumLayoutSize
파라미터:
target - 배치할 필요가 있는 컨테이너
반환값:
0 이상으로 Integer.MAX_VALUE 이하의 사이즈
예외:
AWTError - 타겟이 BoxLayout 생성자 으로 지정되었다 컨테이너가 아닌 경우
관련 항목:
preferredLayoutSize(java.awt.Container) , minimumLayoutSize(java.awt.Container)

getLayoutAlignmentX

public float getLayoutAlignmentX(Container  target)
컨테이너의 X 축으로 따른 배치 방법을 돌려줍니다. 박스가 수평 방향인 경우는, 디폴트의 배치가 돌려주어집니다. 그렇지 않은 경우는, 아이를 X 축으로 따라 배치하는데 필요한 배치가 돌려주어집니다.

정의:
인터페이스 LayoutManager2 내의 getLayoutAlignmentX
파라미터:
target - 컨테이너
반환값:
배치 >= 0 . 0f && <= 1.0f
예외:
AWTError - 타겟이 BoxLayout 생성자 으로 지정되었다 컨테이너가 아닌 경우

getLayoutAlignmentY

public float getLayoutAlignmentY(Container  target)
컨테이너의 Y 축으로 따른 배치 방법을 돌려줍니다. 박스가 수직 방향인 경우는, 디폴트의 위치 맞춤용의 값이 돌려주어집니다. 그렇지 않은 경우는, 아이를 Y 축으로 따라 배치하는데 필요한 위치 맞춤용의 값이 돌려주어집니다.

정의:
인터페이스 LayoutManager2 내의 getLayoutAlignmentY
파라미터:
target - 컨테이너
반환값:
배치 >= 0 . 0f && <= 1.0f
예외:
AWTError - 타겟이 BoxLayout 생성자 으로 지정되었다 컨테이너가 아닌 경우

layoutContainer

public void layoutContainer(Container  target)
지정된 컨테이너를 배치할 필요가 있을 때 AWT 에 의해 불려 갑니다.

정의:
인터페이스 LayoutManager 내의 layoutContainer
파라미터:
target - 레이아웃 하는 컨테이너
예외:
AWTError - 타겟이 BoxLayout 생성자 으로 지정되었다 컨테이너가 아닌 경우

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.