|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
java.lang.Objectjavax.swing.SizeSequence
public class SizeSequence
SizeSequence
객체는, 사이즈 및 대응하는 위치의, 순서 붙이고 된 리스트를 효과적으로 유지합니다. SizeSequence
의 상황으로서 적절한 예로서는, 사이즈가 동일하지 않은 복수의 행을 표시하는 컴퍼넌트의 경우가 있습니다. 이 경우, 단일의 SizeSequence
객체를 사용해, 모든 행의 높이와 Y 위치를 추적할 수 있습니다.
이제 1 개의 예로서 열사이즈가 동일하지 않은 JTable
등의 복수열컴퍼넌트가 있습니다. JTable
는, 단일의 SizeSequence
객체를 사용해 모든 열의 폭과 X 위치를 포함할 수 있습니다. 계속되어 JTable
는,SizeSequence
객체를 사용해 특정의 위치에 대응하는 열을 찾아낼 수가 있습니다. 1 개(살) 또는 복수의 열사이즈가 변경이 되었을 때에는 언제라도,JTable
는 SizeSequence
객체를 갱신할 수 있습니다.
다음의 그림은, 복수열컴퍼넌트의 사이즈와 위치 데이터의 관계를 나타내고 있습니다.
이 그림으로, 최초의 인덱스 (0)는 최초의 열에 대응해, 2 번째의 인덱스 (1)는 2 번째의 열에 대응한다, 와 같이 되어 있습니다. 최초의 열의 위치는 0 으로 시작되어, 이 열은 size0 픽셀을 차지합니다. size0 은 getSize(0)
가 돌려주는 값입니다. 따라서 최초의 열은 size0 - 1 으로 끝납니다. 계속되어 2 번째의 열이 size0 으로부터 시작되어,size1 (getSize(1)
) 픽셀을 차지합니다.
SizeSequence
객체는 단지 축으로 따른 간격을 나타냅니다. 상기의 예에서는, 간격은 픽셀 단위의 높이 또는 폭을 나타내고 있습니다. 그러나, 하루 가운데 시간 등, 다른 측정 단위도 똑같이 유효합니다.
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 |
생성자 의 상세 |
---|
public SizeSequence()
SizeSequence
객체를 생성합니다. 엔트리를 등록하려면 ,insertEntries
또는 setSizes
를 사용합니다.
insertEntries(int, int, int)
,
setSizes(int, int)
public SizeSequence(int numEntries)
SizeSequence
객체를 생성합니다. 엔트리는 모두, 사이즈 0 에 초기화되고 있습니다.
numEntries
- 추적하는 사이즈의 수
NegativeArraySizeException
- 다음의 조건이 성립하는 경우:
numEntries 의 값이 0 보다 작은 경우
public SizeSequence(int numEntries, int value)
SizeSequence
객체를 생성합니다. 엔트리는 모두, 사이즈 value
에 초기화되고 있습니다.
numEntries
- 추적하는 사이즈의 수value
- 각 사이즈의 초기치public SizeSequence(int[] sizes)
SizeSequence
객체를 생성합니다.
sizes
- SizeSequence
에 포함되는 사이즈의 배열메소드의 상세 |
---|
public void setSizes(int[] sizes)
sizes
인수를 사용해, 이 SizeSequence
객체를 리셋 합니다. 이 메소드는, 이 객체가 sizes
배열과 동일한 엔트리를 포함하도록(듯이) 초기화합니다. 각 엔트리의 사이즈는,sizes
의 대응하는 항목의 값에 초기화됩니다.
sizes
- 이 SizeSequence
에 포함되는 사이즈의 배열public int[] getSizes()
public int getPosition(int index)
getPosition(0)
는 0 을 돌려주어,getPosition(1)
는 getSize(0)
를,getPosition(2)
는 getSize(0)
+ getSize(1)
를 돌려줍니다.
index
가 length
보다 큰 경우, 반환되는 값은 무의미합니다.
index
- 위치가 요구되고 있는 엔트리의 인덱스
public int getIndex(int position)
getIndex(0)
는 0 입니다만, 이것은, 최초의 엔트리는 언제나 위치 0 으로부터 시작되기 (위해)때문에입니다.
position
- 엔트리의 위치
public int getSize(int index)
index
가 일정한 범위내 (0 <= index < getSizes(). length)
에 없는 경우, 동작은 미확정입니다.
index
- 엔트리에 대응하는 인덱스
public void setSize(int index, int size)
index
의 값이 일정한 범위내 (0 <= index < getSizes(). length)
에 없는 경우, 동작은 미확정입니다.
index
- 엔트리에 대응하는 인덱스size
- 엔트리의 사이즈public void insertEntries(int start, int length, int value)
SizeSequence
에 추가합니다. start
와 length
의 값은,(0 <= start < getSizes(). length) AND (length >= 0)
의 조건을 채울 필요가 있습니다. 이 조건을 채우지 않는 경우, 동작이 미확정인 모아 두어 예외가 throw 되는 경우가 있습니다.
start
- 그룹내의 최초의 엔트리에
할당할 수 있는 인덱스length
- 그룹의 엔트리수value
- 새로운 각 엔트리에 할당하는 사이즈
ArrayIndexOutOfBoundsException
- 파라미터가
다음의 범위내에 없는 경우:
(0 <= start < (getSizes(). length)) AND (length >= 0)
public void removeEntries(int start, int length)
SizeSequence
로부터 삭제합니다. start
와 length
의 값은,(0 <= start < getSizes(). length) AND (length >= 0)
의 조건을 채울 필요가 있습니다. 이 조건을 채우지 않는 경우, 동작이 미확정인 모아 두어 예외가 throw 되는 경우가 있습니다.
start
- 삭제되는 최초의 엔트리의 인덱스length
- 삭제되는 엔트리의 수
|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.