|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요 : 상자 | 필드 | 생성자 | 메소드 | 상세 : 필드 | 생성자 | 메소드 |
java.lang.Objectjavax.swing.SpringLayout
public class SpringLayout
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()
메소드가 돌려주는 최소 사이즈, 추천 사이즈, 및 최대 사이즈가 설정됩니다. x 와 y 의 위치는 초기 상태에서는 제약이 설정되어 있지 않기 때문에,Component
의 위치는, 제약을 설정할 때까지 친 Container
의 Insets
에 대해서 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
를 사용하는 GUI 를 핸드 코딩 하는 경우는, west/east 및 north/south 의 위치에 제약을 설정하는 것에 의해, 컴퍼넌트의 위치를 초기화해 주세요.사용하는 제약에 따라서는, 컨테이너의 사이즈를 명시적으로 설정하는 것이 필요한 경우도 있습니다.
SpringLayout
는 단순합니다만, 대부분의 레이아웃 매니저의 동작을 에뮤레이트 할 수 있습니다. FlowLayout
의 행 브레이크와 같은 기능에 대해서는,Spring
클래스에 전용의 서브 클래스를 작성할 필요가 있습니다.
SpringLayout
를 사용하면(자),Box
를 상자로 한 편성에서는 해결할 수 없는 것 같은, 레이아웃에 관한 어려운 문제도 많이 해결할 수 있습니다. SpringLayout
는 LayoutManager2
규약을 정확하게 준수하고 있기 (위해)때문에, 다른 레이아웃 매니저를 상자로 할 수 있습니다. 이것은, 다른 레이아웃 매니저에게 포함되는 제약을 작성하는 방법보다 바람직한 방법입니다.
SpringLayout
에 의한 레이아웃 오퍼레이션의 점근적 complex system는, 제약 또는 컴퍼넌트, 혹은 그 양쪽 모두의 수 에 비례합니다.
경고: 이 클래스의 직렬화 된 객체는, 향후의 Swing 릴리스와 호환은 아니게 될 예정입니다. 현재의 직렬화의 지원는, 단기간의 운용이나, 같은 버젼의 Swing 를 실행하는 어플리케이션간의 RMI 에 적절하고 있습니다. JDK Version 1.4 이후, 모든 JavaBeans™ 의 장기간의 운용 지원는,java.beans
패키지에 추가되고 있습니다. 자세한 것은,XMLEncoder
를 참조해 주세요.
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)
constraints 가 SpringLayout.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 |
필드의 상세 |
---|
public static final String NORTH
public static final String SOUTH
public static final String EAST
public static final String WEST
public static final String HORIZONTAL_CENTER
public static final String VERTICAL_CENTER
public static final String BASELINE
public static final String WIDTH
public static final String HEIGHT
생성자 의 상세 |
---|
public SpringLayout()
SpringLayout
를 구축합니다.
메소드의 상세 |
---|
public void addLayoutComponent(String name, Component c)
LayoutManager
내의 addLayoutComponent
name
- 컴퍼넌트에 관련지을 수 있었던 캐릭터 라인c
- 추가되는 컴퍼넌트public void removeLayoutComponent(Component c)
LayoutManager
내의 removeLayoutComponent
c
- 컨테이너로부터 삭제되는 컴퍼넌트public Dimension minimumLayoutSize(Container parent)
LayoutManager
의 기술:
LayoutManager
내의 minimumLayoutSize
parent
- 배치되는 컴퍼넌트LayoutManager.preferredLayoutSize(java.awt.Container)
public Dimension preferredLayoutSize(Container parent)
LayoutManager
의 기술:
LayoutManager
내의 preferredLayoutSize
parent
- 배치되는 컨테이너LayoutManager.minimumLayoutSize(java.awt.Container)
public Dimension maximumLayoutSize(Container parent)
LayoutManager2
의 기술:
LayoutManager2
내의 maximumLayoutSize
Component.getMaximumSize()
,
LayoutManager
public void addLayoutComponent(Component component, Object constraints)
constraints
가 SpringLayout.Constraints
의 인스턴스인 경우는, 지정된 컴퍼넌트에 제약을 관련짓습니다.
LayoutManager2
내의 addLayoutComponent
component
- 추가하는 컴퍼넌트constraints
- 컴퍼넌트의 제약SpringLayout.Constraints
public float getLayoutAlignmentX(Container p)
LayoutManager2
내의 getLayoutAlignmentX
public float getLayoutAlignmentY(Container p)
LayoutManager2
내의 getLayoutAlignmentY
public void invalidateLayout(Container p)
LayoutManager2
의 기술:
LayoutManager2
내의 invalidateLayout
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)
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
public SpringLayout.Constraints getConstraints(Component c)
GridBagLayout
getConstraints
메소드와는 달라, 이 메소드는 제약을 복제하지 않습니다. 컴퍼넌트에 관련지을 수 있었던 제약이 없는 경우는, 부모의 인 세트에 대해서 0,0 의 위치에 있는 디폴트의 제약 객체를 돌려줍니다. 폭과 높이는 컴퍼넌트의 최소 사이즈, 최대 사이즈, 및 추천 사이즈에 제약됩니다. 메소드가 불려 간 시점에서 사이즈의 특성은 동결됩니다만, 변경된 컴퍼넌트의 특성을 추적하는 특성을 가지는 제약 객체를 돌려줍니다.
c
- 반환되는 제약을 가지는 컴퍼넌트
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
public void layoutContainer(Container parent)
LayoutManager
의 기술:
LayoutManager
내의 layoutContainer
parent
- 배치되는 컨테이너
|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요 : 상자 | 필드 | 생성자 | 메소드 | 상세 : 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.