JavaTM Platform
Standard Ed. 6

javax.swing
클래스 SpringLayout

java.lang.Object 
  상위를 확장 javax.swing.SpringLayout
모든 구현된 인터페이스:
LayoutManager , LayoutManager2


public class SpringLayout
extends Object
implements LayoutManager2

SpringLayout 는, 일련의 제약에 근거해, 관련하는 컨테이너의 아이를 배치합니다. SpringLayout 의 사용예에 대해서는, 「The Java Tutorial」의「How to Use SpringLayout」를 참조해 주세요.

Spring 객체로 나타내지는 각 제약은, 2 개의 컴퍼넌트 엣지간의 수직 방향 또는 수평 방향의 거리를 제어합니다. 엣지는, 컨테이너의 아이 또는 컨테이너 자신에게 속할 수가 있습니다. 예를 들어, 컴퍼넌트에 용서되는 폭은, 컴퍼넌트의 west (왼쪽) 엣지와 east ( 오른쪽) 엣지간의 거리를 제어하는 제약을 사용해 표현할 수 있습니다. 컴퍼넌트에 용서되는 y 좌표는, 컴퍼넌트의 north (상단) 엣지와 컨테이너의 north 엣지간의 거리의 제약에 의해 표현할 수 있습니다.

SpringLayout 에 의해 제어되는 컨테이너의 모든 아이는, 컨테이너 자신과 같게, 관련하는 제약을 1 세트만 가집니다. 제약은,SpringLayout.Constraints 객체에 의해 표현됩니다. SpringLayout 가 디폴트로 작성하는 제약에서는, 관련하는 컴퍼넌트에, 컴퍼넌트의 Component.getMinimumSize() 메소드,Component.getPreferredSize() 메소드, 및 Component.getMaximumSize() 메소드가 돌려주는 최소 사이즈, 추천 사이즈, 및 최대 사이즈가 설정됩니다. xy 의 위치는 초기 상태에서는 제약이 설정되어 있지 않기 때문에,Component 의 위치는, 제약을 설정할 때까지 친 ContainerInsets 에 대해서 0,0 이 됩니다.

컴퍼넌트의 제약을 변경하려면 복수의 방법이 있습니다. putConstraint 메소드의 어느쪽이든을 사용하면(자), 동일 컨테이너내의 2 개의 컴퍼넌트의 엣지에 접속하는 스프링을 확립할 수 있습니다. 또,getConstraints 메소드를 사용하면(자), 적절한 SpringLayout.Constraints 객체를 취득할 수 있어 그 후 1 개(살) 이상의 스프링을 변경할 수 있습니다. getConstraint 메소드를 사용하면(자), 컴퍼넌트의 특정의 엣지에 대한 스프링을 취득할 수 있어 그 후 스프링을 변경할 수 있습니다. Container.add(Component, Object) 를 사용하면(자), 컴퍼넌트를 컨테이너에 추가할 경우에 제약 객체를 지정하는 것으로써, 독자적인 SpringLayout.Constraints 객체를 컴퍼넌트에 관련지을 수가 있습니다.

각 제약을 나타내는 Spring 객체에는, 최소치 (minimum 치), 추천값 (preferred 치), 최대치 (maximum 치), 및 현재의 값이 설정됩니다. 스프링의 현재의 값은, 최소치와 최대치의 사이에 있는 값으로,Spring.sum(javax.swing.Spring, javax.swing.Spring) 메소드의 설명으로 나타나는 식에 따릅니다. 최소치, 추천값, 및 최대치가 동일한 경우, 현재의 값도 항상 동일해집니다. 이러한 유연성이 없는 스프링은, 「기둥」 (strut)로 불립니다. 팩토리 메소드의 Spring.constant(int) 를 사용하면(자), 기둥을 생성할 수 있습니다. Spring 클래스에는, 다른 스프링에 의존하는 스프링 등, 그 외의 종류의 스프링을 작성하는 팩토리 메소드도 준비되어 있습니다.

SpringLayout 에서는, 각 엣지의 위치는 다른 1 개(살) 엣지만의 위치에 의존합니다. 제약을 나중에 추가해 엣지에 새로운 바인딩을 작성하면(자), 이전의 바인딩은 파기되어 엣지는 1 개의 엣지에 의존한 상태인 채 유지됩니다. 스프링은, 컨테이너와 그 직접적인 아이의 엣지간에만 접속할 필요가 있습니다. SpringLayout 의 동작은, 다른 컨테이너의 내부 또는 외부로부터 컴퍼넌트의 엣지에 접속하는 제약에 의해 표현되는 경우, 정의되지 않습니다.

SpringLayout 와 그 외의 레이아웃 매니저


주: 많은 레이아웃 매니저와는 달라,SpringLayout 는, 관리하는 컴퍼넌트의 위치를 자동적으로 설정하지 않습니다. SpringLayout 를 사용하는 GUI 를 핸드 코딩 하는 경우는, west/east 및 north/south 의 위치에 제약을 설정하는 것에 의해, 컴퍼넌트의 위치를 초기화해 주세요.

사용하는 제약에 따라서는, 컨테이너의 사이즈를 명시적으로 설정하는 것이 필요한 경우도 있습니다.


SpringLayout 는 단순합니다만, 대부분의 레이아웃 매니저의 동작을 에뮤레이트 할 수 있습니다. FlowLayout 의 행 브레이크와 같은 기능에 대해서는,Spring 클래스에 전용의 서브 클래스를 작성할 필요가 있습니다.

SpringLayout 를 사용하면(자),Box 를 상자로 한 편성에서는 해결할 수 없는 것 같은, 레이아웃에 관한 어려운 문제도 많이 해결할 수 있습니다. SpringLayoutLayoutManager2 규약을 정확하게 준수하고 있기 (위해)때문에, 다른 레이아웃 매니저를 상자로 할 수 있습니다. 이것은, 다른 레이아웃 매니저에게 포함되는 제약을 작성하는 방법보다 바람직한 방법입니다.

SpringLayout 에 의한 레이아웃 오퍼레이션의 점근적 complex system는, 제약 또는 컴퍼넌트, 혹은 그 양쪽 모두의 수 에 비례합니다.

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

도입된 버젼:
1.4
관련 항목:
Spring , SpringLayout.Constraints

상자의 클래스의 개요
static class SpringLayout.Constraints
          Constraints 객체는,SpringLayout 가 제어하는 컨테이너내의 컴퍼넌트의 사이즈 변경 방법 및 위치 변경 방법을 결정하는 제약을 보관 유지합니다.
 
필드의 개요
static String BASELINE
          컴퍼넌트의 baseline를 지정합니다.
static String EAST
          컴퍼넌트의 경계의 구형의 우단을 지정합니다.
static String HEIGHT
          컴퍼넌트의 경계의 구형의 높이를 지정합니다.
static String HORIZONTAL_CENTER
          컴퍼넌트의 경계의 구형의 수평 방향의 중심을 지정합니다.
static String NORTH
          컴퍼넌트의 경계의 구형의 상단을 지정합니다.
static String SOUTH
          컴퍼넌트의 경계의 구형의 하단을 지정합니다.
static String VERTICAL_CENTER
          컴퍼넌트의 경계의 구형의 수직 방향의 중심을 지정합니다.
static String WEST
          컴퍼넌트의 경계의 구형의 좌단을 지정합니다.
static String WIDTH
          컴퍼넌트의 경계의 구형의 폭을 지정합니다.
 
생성자 의 개요
SpringLayout ()
          새로운 SpringLayout 를 구축합니다.
 
메소드의 개요
 void addLayoutComponent (Component  component, Object  constraints)
          constraintsSpringLayout.Constraints 의 인스턴스인 경우는, 지정된 컴퍼넌트에 제약을 관련짓습니다.
 void addLayoutComponent (String  name, Component  c)
          이 레이아웃 매니저는 컴퍼넌트마다의 캐릭터 라인을 사용하지 않기 때문에, 아무것도 하지 않습니다.
 Spring getConstraint (String  edgeName, Component  c)
          컴퍼넌트의 지정된 엣지와 부모의 상단 또는 좌단과의 사이의 거리를 제어하는 스프링을 돌려줍니다.
 SpringLayout.Constraints getConstraints (Component  c)
          지정된 컴퍼넌트의 제약을 돌려줍니다.
 float getLayoutAlignmentX (Container  p)
          0. 5f (centering)를 돌려줍니다.
 float getLayoutAlignmentY (Container  p)
          0. 5f (centering)를 돌려줍니다.
 void invalidateLayout (Container  p)
          레이아웃을 무효로 합니다.
 void layoutContainer (Container  parent)
          지정된 컨테이너를 배치합니다.
 Dimension maximumLayoutSize (Container  parent)
          지정된 컨테이너의 최대 사이즈의 치수를 계산합니다.
 Dimension minimumLayoutSize (Container  parent)
          지정된 컨테이너의 최소 사이즈의 치수를 계산합니다.
 Dimension preferredLayoutSize (Container  parent)
          지정된 컨테이너의 추천 사이즈의 치수를 계산합니다.
 void putConstraint (String  e1, Component  c1, int pad, String  e2, Component  c2)
          컴퍼넌트 c1 의 엣지 e1 를 컴퍼넌트 c2 의 엣지 e2 에 링크합니다.
 void putConstraint (String  e1, Component  c1, Spring  s, String  e2, Component  c2)
          컴퍼넌트 c1 의 엣지 e1 를 컴퍼넌트 c2 의 엣지 e2 에 링크합니다.
 void removeLayoutComponent (Component  c)
          지정된 컴퍼넌트에 관련부 제약을 삭제합니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

필드의 상세

NORTH

public static final String  NORTH
컴퍼넌트의 경계의 구형의 상단을 지정합니다.

관련 항목:
정수 필드치

SOUTH

public static final String  SOUTH
컴퍼넌트의 경계의 구형의 하단을 지정합니다.

관련 항목:
정수 필드치

EAST

public static final String  EAST
컴퍼넌트의 경계의 구형의 우단을 지정합니다.

관련 항목:
정수 필드치

WEST

public static final String  WEST
컴퍼넌트의 경계의 구형의 좌단을 지정합니다.

관련 항목:
정수 필드치

HORIZONTAL_CENTER

public static final String  HORIZONTAL_CENTER
컴퍼넌트의 경계의 구형의 수평 방향의 중심을 지정합니다.

도입된 버젼:
1.6
관련 항목:
정수 필드치

VERTICAL_CENTER

public static final String  VERTICAL_CENTER
컴퍼넌트의 경계의 구형의 수직 방향의 중심을 지정합니다.

도입된 버젼:
1.6
관련 항목:
정수 필드치

BASELINE

public static final String  BASELINE
컴퍼넌트의 baseline를 지정합니다.

도입된 버젼:
1.6
관련 항목:
정수 필드치

WIDTH

public static final String  WIDTH
컴퍼넌트의 경계의 구형의 폭을 지정합니다.

도입된 버젼:
1.6
관련 항목:
정수 필드치

HEIGHT

public static final String  HEIGHT
컴퍼넌트의 경계의 구형의 높이를 지정합니다.

도입된 버젼:
1.6
관련 항목:
정수 필드치
생성자 의 상세

SpringLayout

public SpringLayout()
새로운 SpringLayout 를 구축합니다.

메소드의 상세

addLayoutComponent

public void addLayoutComponent(String  name,
                               Component  c)
이 레이아웃 매니저는 컴퍼넌트마다의 캐릭터 라인을 사용하지 않기 때문에, 아무것도 하지 않습니다.

정의:
인터페이스 LayoutManager 내의 addLayoutComponent
파라미터:
name - 컴퍼넌트에 관련지을 수 있었던 캐릭터 라인
c - 추가되는 컴퍼넌트

removeLayoutComponent

public void removeLayoutComponent(Component  c)
지정된 컴퍼넌트에 관련부 제약을 삭제합니다.

정의:
인터페이스 LayoutManager 내의 removeLayoutComponent
파라미터:
c - 컨테이너로부터 삭제되는 컴퍼넌트

minimumLayoutSize

public Dimension  minimumLayoutSize(Container  parent)
인터페이스 LayoutManager 의 기술:
지정된 컨테이너의 최소 사이즈의 치수를 계산합니다. 포함되는 컴퍼넌트는 지정됩니다.

정의:
인터페이스 LayoutManager 내의 minimumLayoutSize
파라미터:
parent - 배치되는 컴퍼넌트
관련 항목:
LayoutManager.preferredLayoutSize(java.awt.Container)

preferredLayoutSize

public Dimension  preferredLayoutSize(Container  parent)
인터페이스 LayoutManager 의 기술:
지정된 컨테이너의 추천 사이즈의 치수를 계산합니다. 포함되는 컴퍼넌트는 지정됩니다.

정의:
인터페이스 LayoutManager 내의 preferredLayoutSize
파라미터:
parent - 배치되는 컨테이너
관련 항목:
LayoutManager.minimumLayoutSize(java.awt.Container)

maximumLayoutSize

public Dimension  maximumLayoutSize(Container  parent)
인터페이스 LayoutManager2 의 기술:
지정된 컨테이너의 최대 사이즈의 치수를 계산합니다. 포함되는 컴퍼넌트는 지정됩니다.

정의:
인터페이스 LayoutManager2 내의 maximumLayoutSize
관련 항목:
Component.getMaximumSize() , LayoutManager

addLayoutComponent

public void addLayoutComponent(Component  component,
                               Object  constraints)
constraintsSpringLayout.Constraints 의 인스턴스인 경우는, 지정된 컴퍼넌트에 제약을 관련짓습니다.

정의:
인터페이스 LayoutManager2 내의 addLayoutComponent
파라미터:
component - 추가하는 컴퍼넌트
constraints - 컴퍼넌트의 제약
관련 항목:
SpringLayout.Constraints

getLayoutAlignmentX

public float getLayoutAlignmentX(Container  p)
0.5f (centering)를 돌려줍니다.

정의:
인터페이스 LayoutManager2 내의 getLayoutAlignmentX

getLayoutAlignmentY

public float getLayoutAlignmentY(Container  p)
0.5f (centering)를 돌려줍니다.

정의:
인터페이스 LayoutManager2 내의 getLayoutAlignmentY

invalidateLayout

public void invalidateLayout(Container  p)
인터페이스 LayoutManager2 의 기술:
레이아웃을 무효로 합니다. 이 때, 레이아웃 매니저가 정보를 캐쉬하고 있으면 그것을 파기합니다.

정의:
인터페이스 LayoutManager2 내의 invalidateLayout

putConstraint

public void putConstraint(String  e1,
                          Component  c1,
                          int pad,
                          String  e2,
                          Component  c2)
컴퍼넌트 c1 의 엣지 e1 를 컴퍼넌트 c2 의 엣지 e2 에 링크합니다. 엣지간의 거리는 고정입니다. 이 제약에 의해, 후속의 모든 레이아웃 오퍼레이션으로, 다음의 대입이 발생합니다.
     value(e1, c1) = value(e2, c2) + pad

파라미터:
e1 - 의존하는 엣지
c1 - 의존하는 컴퍼넌트
pad - 의존하는 측으로 여겨지는 측의 사이의 고정 거리
e2 - 의존되는 엣지
c2 - 의존되는 컴퍼넌트
관련 항목:
putConstraint(String, Component, Spring, String, Component)

putConstraint

public void putConstraint(String  e1,
                          Component  c1,
                          Spring  s,
                          String  e2,
                          Component  c2)
컴퍼넌트 c1 의 엣지 e1 를 컴퍼넌트 c2 의 엣지 e2 에 링크합니다. 엣지 (e2, c2) 의 값이 변경되면(자),(e2, c2) 라고 s 의 (스프링) sum 에 의해 엣지 (e1, c1) 가 계산됩니다. 각 엣지에,SpringLayout.NORTH,SpringLayout.SOUTH,SpringLayout.EAST,SpringLayout.WEST,SpringLayout.HORIZONTAL_CENTER,SpringLayout.VERTICAL_CENTER, 또는 SpringLayout.BASELINE 의 몇개의 값이 설정되어 있을 필요가 있습니다.

파라미터:
e1 - 의존하는 엣지
c1 - 의존하는 컴퍼넌트
s - 의존하는 측과 의존되는 측을 접속하는 스프링
e2 - 의존되는 엣지
c2 - 의존되는 컴퍼넌트
관련 항목:
putConstraint(String, Component, int, String, Component) , NORTH , SOUTH , EAST , WEST , VERTICAL_CENTER , HORIZONTAL_CENTER , BASELINE

getConstraints

public SpringLayout.Constraints  getConstraints(Component  c)
지정된 컴퍼넌트의 제약을 돌려줍니다. GridBagLayout getConstraints 메소드와는 달라, 이 메소드는 제약을 복제하지 않습니다. 컴퍼넌트에 관련지을 수 있었던 제약이 없는 경우는, 부모의 인 세트에 대해서 0,0 의 위치에 있는 디폴트의 제약 객체를 돌려줍니다. 폭과 높이는 컴퍼넌트의 최소 사이즈, 최대 사이즈, 및 추천 사이즈에 제약됩니다. 메소드가 불려 간 시점에서 사이즈의 특성은 동결됩니다만, 변경된 컴퍼넌트의 특성을 추적하는 특성을 가지는 제약 객체를 돌려줍니다.

파라미터:
c - 반환되는 제약을 가지는 컴퍼넌트
반환값:
지정된 컴퍼넌트의 제약

getConstraint

public Spring  getConstraint(String  edgeName,
                            Component  c)
컴퍼넌트의 지정된 엣지와 부모의 상단 또는 좌단과의 사이의 거리를 제어하는 스프링을 돌려줍니다. 이 메소드는, 엣지에 대한 현재의 바인딩을 돌려주는 것이 아니라, 엣지를 나중에 재차 바인드 하는 경우에도 엣지의 특성을 추적하는 프록시를 돌려줍니다. 프록시는, 구축 환경에서의 사용을 목적으로 하고 있습니다. 구축 환경에서는, 사용자가 임의의 순서로 레이아웃의 제약을 정의할 수 있도록(듯이) 하는 것이 편리합니다. 다만, 프록시는, 레이아웃의 제약간의 순환적인 의존성을 작성하는 수단을 제공합니다. 그러한 사이클은, 레이아웃 오퍼레이션을 언제라도 종료할 수 있도록(듯이),SpringLayout 에 의해 내부적으로 검출됩니다.

파라미터:
edgeName - SpringLayout.NORTH, SpringLayout.SOUTH, SpringLayout.EAST, SpringLayout.WEST, SpringLayout.VERTICAL_CENTER, SpringLayout.HORIZONTAL_CENTER, 또는 SpringLayout.BASELINE 의 어느쪽이든
c - 엣지 스프링이 요구되는 컴퍼넌트
반환값:
지정된 엣지로부터 그 부모의 상단 또는 좌단까지의 거리를 제어하는 스프링의 프록시
관련 항목:
NORTH , SOUTH , EAST , WEST , VERTICAL_CENTER , HORIZONTAL_CENTER , BASELINE

layoutContainer

public void layoutContainer(Container  parent)
인터페이스 LayoutManager 의 기술:
지정된 컨테이너를 배치합니다.

정의:
인터페이스 LayoutManager 내의 layoutContainer
파라미터:
parent - 배치되는 컨테이너

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 도 참조해 주세요.