JavaTM 2
Platform
Std.  Ed.  v1. 4.0

javax.swing
클래스 SizeSequence

java.lang.Object 
  |
  +--javax.swing.SizeSequence

public class SizeSequence
extends Object

SizeSequence 오브젝트는 사이즈 및 대응하는 위치의, 순서 붙이고 된 리스트를 효과적으로 유지합니다. SizeSequence 의 상황으로서 적절한 예로서는 사이즈가 동일하지 않은 복수의 행을 표시하는 컴퍼넌트의 경우가 있습니다. 이 경우, 단일의 SizeSequence 오브젝트를 사용해, 모든 행의 높이와 Y 위치를 추적할 수 있습니다.

이제 1 개의 예로서 열사이즈가 동일하지 않은 JTable 등의 복수열컴퍼넌트가 있습니다. JTable 는 단일의 SizeSequence 오브젝트를 사용해 모든 열의 폭과 X 위치를 저장할 수 있습니다. 계속되어 JTableSizeSequence 오브젝트를 사용해 특정의 위치에 대응하는 열을 찾아낼 수가 있습니다. 1 kr 또는 복수의 열사이즈가 변경이 되었을 때에는 언제라도,JTableSizeSequence 오브젝트를 갱신할 수 있습니다.

다음의 그림은 복수열컴퍼넌트의 사이즈와 위치 데이터의 관계를 나타내고 있습니다.

The first item begins at position 0, the second at the position equal to the size of the previous item, and so on.

이 그림으로, 최초의 인덱스 (0)는 최초의 열에 대응해, 2 번째의 인덱스 (1)는 2 번째의 열에 대응한다, 와 같이 되어 있습니다. 최초의 열의 위치는 0 으로 시작되어, 이 열은 size0 픽셀을 차지합니다. size0getSize(0) 가 돌려주는 값입니다. 따라서 최초의 열은 size0 - 1 으로 끝납니다. 계속되어 2 번째의 열이 size0 으로부터 시작되어,size1 (getSize(1)) 픽셀을 차지합니다.

SizeSequence 오브젝트는 단지 축으로 따른 간격을 나타냅니다. 상기의 예에서는 간격은 픽셀 단위의 높이 또는 폭을 나타내고 있습니다. 그러나, 하루 가운데 시간 등, 다른 측정 단위도 똑같이 유효합니다.

구현상의 주의:

통상, 엔트리의 사이즈와 위치를 저장하려면 , 사이즈의 저장인가, 또는 위치의 저장의 어느 쪽인지를 선택합니다. 표현중에 필요한 공통 조작이 2 개 있습니다. 그것들은 getIndex(position)setSize(index, size) 입니다. 내부 형식에 어느 쪽을 선택해도, 엔트리수가 커지면(자) 2 의 조작의 어느 쪽인지는 효율이 나빠집니다. 사이즈를 저장했을 경우, 특정의 위치를 둘러싸는 엔트리의 인덱스의 검색은 엔트리수 에 비례해 시간이 걸립니다. 반대로 위치를 저장했을 경우, 특정의 인덱스에 있는 엔트리의 사이즈의 설정은 영향을 받는 엔트리의 위치를 갱신할 필요가 있어, 역시 엔트리수 에 비례해 계산에 시간이 걸립니다.

상기의 방법과 같이, 이 클래스는 내부에 N 개의 정수의 배열을 보관 유지합니다만, 사이즈 베이스의 방법과 위치 베이스의 방법의 중간의, 하이브리드(hybrid)인 인코딩을 사용합니다. 이것에 의해, 정보를 저장하는데 필요한 공간은 같습니다만, 대부분의 조작을 O(N) 시간은 아니고 Log(N) 시간에 실행할 수 있는 데이터 구조가 됩니다. N 는 리스트에 있는 엔트리수입니다.

엔트리수의 O(N)인 채 남는 조작은 insertEntries 메소드와 removeEntries 메소드의 2 개입니다. 양메소드 모두, 내부 배열을 정수 사이즈세트로 변환해, 그것을 새로운 배열에 카피해, 그 후 하이브리드(hybrid) 표현을 적절히 수정하는 것에 의해 구현합니다.


생성자의 개요
SizeSequence ()
          엔트리를 저장하고 있지 않는 새로운 SizeSequence 오브젝트를 생성합니다.
SizeSequence (int numEntries)
          지정된 수의 엔트리를 저장하는 새로운 SizeSequence 오브젝트를 생성합니다.
SizeSequence (int[] sizes)
          지정된 사이즈를 저장하는 새로운 SizeSequence 오브젝트를 생성합니다.
SizeSequence (int numEntries, int value)
          지정된 수의 엔트리를 저장하는 새로운 SizeSequence 오브젝트를 생성합니다.
 
메소드의 개요
 int getIndex (int position)
          지정된 위치에 대응하는 엔트리의 인덱스를 돌려줍니다.
 int getPosition (int index)
          지정된 배열의 개시 위치를 돌려줍니다.
 int getSize (int index)
          지정된 엔트리의 인덱스를 돌려줍니다.
 int[] getSizes ()
          전엔트리의 사이즈를 돌려줍니다.
 void insertEntries (int start, int length, int value)
          연속하는 엔트리의 그룹을 이 SizeSequence 에 추가합니다.
 void removeEntries (int start, int length)
          연속하는 엔트리의 그룹을 이 SizeSequence 로부터 삭제합니다.
 void setSize (int index, int size)
          지정된 엔트리의 사이즈를 설정합니다.
 void setSizes (int[] sizes)
          sizes 인수를 사용해, 이 SizeSequence 오브젝트를 리셋트 합니다.
 
클래스 java.lang. Object 에서 상속받은 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

생성자의 상세

SizeSequence

public SizeSequence()
엔트리를 저장하고 있지 않는 새로운 SizeSequence 오브젝트를 생성합니다. 엔트리를 등록하려면 ,insertEntries 또는 setSizes 를 사용합니다.

관련 항목:
insertEntries(int, int, int) , setSizes(int[])

SizeSequence

public SizeSequence(int numEntries)
지정된 수의 엔트리를 저장하는 새로운 SizeSequence 오브젝트를 생성합니다. 엔트리는 모두, 사이즈 0 에 초기화되고 있습니다.

파라미터:
numEntries - 추적하는 사이즈의 수
예외:
NegativeArraySizeException - numEntries 의 값이 0 보다 작은 경우

SizeSequence

public SizeSequence(int numEntries,
                    int value)
지정된 수의 엔트리를 저장하는 새로운 SizeSequence 오브젝트를 생성합니다. 엔트리는 모두, 사이즈 value 에 초기화되고 있습니다.

파라미터:
numEntries - 추적하는 사이즈의 수
value - 각 사이즈의 초기치

SizeSequence

public SizeSequence(int[] sizes)
지정된 사이즈를 저장하는 새로운 SizeSequence 오브젝트를 생성합니다.

파라미터:
sizes - SizeSequence 에 저장되는 사이즈의 배열
메소드의 상세

setSizes

public void setSizes(int[] sizes)
sizes 인수를 사용해, 이 SizeSequence 오브젝트를 리셋트 합니다. 이 메소드는 이 오브젝트가 sizes 배열과 동일한 엔트리를 저장하도록(듯이) 초기화합니다. 각 엔트리의 사이즈는 sizes 의 대응하는 항목의 값에 초기화됩니다.

파라미터:
sizes - 이 SizeSequence 에 저장되는 사이즈의 배열

getSizes

public int[] getSizes()
전엔트리의 사이즈를 돌려줍니다.

반환값:
이 오브젝트의 사이즈를 저장하는 새로운 배열

getPosition

public int getPosition(int index)
지정된 배열의 개시 위치를 돌려줍니다. 예를 들어,getPosition(0) 는 0 을 돌려주어,getPosition(1)getSize(0) 를,getPosition(2)getSize(0) + getSize(1) 를 돌려줍니다.

indexlength 보다 큰 경우, 돌려주어지는 값은 무의미합니다.

파라미터:
index - 위치가 요구되고 있는 엔트리의 인덱스
반환값:
지정된 엔트리의 개시 위치

getIndex

public int getIndex(int position)
지정된 위치에 대응하는 엔트리의 인덱스를 돌려줍니다. 예를 들어 getIndex(0) 는 0 입니다만, 이것은 최초의 엔트리는 언제나 위치 0 으로부터 시작되기 (위해)때문에입니다.

파라미터:
position - 엔트리의 위치
반환값:
지정된 위치를 차지하는 엔트리의 인덱스

getSize

public int getSize(int index)
지정된 엔트리의 인덱스를 돌려줍니다. index 가 일정한 범위내 (0 <= index < getSizes(). length) 에 없는 경우, 동작은 미확정입니다.

파라미터:
index - 엔트리에 대응하는 인덱스
반환값:
엔트리의 사이즈

setSize

public void setSize(int index,
                    int size)
지정된 엔트리의 사이즈를 설정합니다. index 의 값이 일정한 범위내 (0 <= index < getSizes(). length) 에 없는 경우, 동작은 미확정입니다.

파라미터:
index - 엔트리에 대응하는 인덱스
size - 엔트리의 사이즈

insertEntries

public void insertEntries(int start,
                          int length,
                          int value)
연속하는 엔트리의 그룹을 이 SizeSequence 에 추가합니다. startlength 의 값은 (0 <= start < getSizes(). length) AND (length >= 0) 의 조건을 채울 필요가 있습니다. 이 조건을 채우지 않는 경우, 동작이 미확정인 모아 두어 예외가 슬로우 되는 경우가 있습니다.

파라미터:
start - 그룹의 최초의 엔트리에 할당하는 인덱스
length - 그룹의 엔트리수
value - 새로운 각 엔트리에 할당하는 사이즈
예외:
ArrayIndexOutOfBoundsException - 파라미터가 일정한 범위 (0 <= start < (getSizes(). length)) AND (length >= 0) 내에 없는 경우

removeEntries

public void removeEntries(int start,
                          int length)
연속하는 엔트리의 그룹을 이 SizeSequence 로부터 삭제합니다. startlength 의 값은 (0 <= start < getSizes(). length) AND (length >= 0) 의 조건을 채울 필요가 있습니다. 이 조건을 채우지 않는 경우, 동작이 미확정인 모아 두어 예외가 슬로우 되는 경우가 있습니다.

파라미터:
start - 삭제되는 최초의 엔트리의 인덱스
length - 삭제되는 엔트리의 수

JavaTM 2
Platform
Std.  Ed.  v1. 4.0

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

Java, Java 2 D, 및 JDBC 는 미국 및 그 외의 나라에 있어서의 미국 Sun Microsystems, Inc. 의 상표 혹은 등록상표입니다.
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.