|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
| 개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 | |||||||||
java.lang.Objectjava.awt.font.TextMeasurer
public final class TextMeasurer
TextMeasurer 클래스는, 유효폭의 측정, 문자 범위의 유효폭의 지정, 문자 범위의 TextLayout 의 작성 등, 개행에 필요한 기본 조작을 제공합니다. 패러그래프가 증가했을 경우의 편집 메소드도 제공합니다.
TextMeasurer 객체는, 텍스트의 1 개의 패러그래프를 나타내는 AttributedCharacterIterator 로 구축합니다. AttributedCharacterIterator 의 getBeginIndex 메소드가 돌려주는 값은, 최초의 문자의 절대 인덱스를 정의합니다. AttributedCharacterIterator 의 getEndIndex 메소드가 돌려주는 값은, 마지막 문자의 다음의 인덱스를 정의합니다. 이러한 값에 의해,TextMeasurer 를 호출할 때 사용하는 인덱스의 범위가 정의됩니다. 예를 들어, 텍스트의 범위의 유효폭, 즉 텍스트의 범위의 개행을 취득하기 위한 호출에서는, 개시 인덱스치와 종료 인덱스치의 사이의 인덱스를 사용할 필요가 있습니다. insertChar 및 deleteChar 를 호출하면(자),TextMeasurer 가 리셋 되어 이러한 호출로 건네받은 AttributedCharacterIterator 의 개시 인덱스와 종료 인덱스가 사용됩니다.
대부분의 클라이언트는, 표준 개행 (각 행에 배치 가능한 한의 문자를 배치)을 구현하는 편리한 LineBreakMeasurer 를 사용합니다.
LineBreakMeasurer | 생성자 의 개요 | |
|---|---|
TextMeasurer (AttributedCharacterIterator text,
FontRenderContext frc)
소스 텍스트로부터 TextMeasurer 를 구축합니다. |
|
| 메소드의 개요 | |
|---|---|
protected Object |
clone ()
이 객체의 카피를 작성해, 돌려줍니다. |
void |
deleteChar (AttributedCharacterIterator newParagraph,
int deletePos)
이 TextMeasurer 가 현재 나타내는 패러그래프로 1 문자를 삭제하고 나서 TextMeasurer 를 갱신합니다. |
float |
getAdvanceBetween (int start,
int limit)
start 로 시작되어,limit 까지의 문자를 포함한 행의 그래픽폭을 돌려줍니다. |
TextLayout |
getLayout (int start,
int limit)
지정된 문자 범위의 TextLayout 를 돌려줍니다. |
int |
getLineBreakIndex (int start,
float maxAdvance)
start 로 시작되어, 그래픽폭이 maxAdvance 의 행에 배치할 수 없는 최초의 문자의 인덱스를 돌려줍니다. |
void |
insertChar (AttributedCharacterIterator newParagraph,
int insertPos)
이 TextMeasurer 가 현재 나타내는 패러그래프에 1 문자를 삽입하고 나서 TextMeasurer 를 갱신합니다. |
| 클래스 java.lang. Object 로부터 상속된 메소드 |
|---|
equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait |
| 생성자 의 상세 |
|---|
public TextMeasurer(AttributedCharacterIterator text,
FontRenderContext frc)
TextMeasurer 를 구축합니다. 소스 텍스트는 1 단락 전체가 됩니다.
text - 소스 단락. null 는 불가frc - 텍스트를 정확하게 측정하기 위해서 필요한
그래픽스 디바이스에 관한 정보. null 는 불가| 메소드의 상세 |
|---|
protected Object clone()
Object 의 기술:하지만 true 이며, 다음의 식x.clone() ! = x
도 true 인 것입니다만, 이것들도 절대적인 요건이 아닙니다. 또 다음의 식x.clone(). getClass() == x.getClass()
도 일반적으로 true 가 됩니다만, 이것도 절대적인 요건이 아닙니다.x.clone(). equals(x)
일반적으로,super.clone 를 호출하는 것으로 반환되는 객체를 취득할 수 있습니다. 클래스 및 그 슈퍼 클래스 모든 것 (Object 를 제외한다)이 이 규칙에 따르는 경우,x.clone(). getClass() == x.getClass() 가 성립합니다.
일반적으로, 이 메소드에 의해 반환되는 객체는, 이 객체 (복제되고 있다)로부터 독립하고 있을 필요가 있습니다. 이 독립성을 달성하기 위해(때문에),super.clone 가 돌려주는 객체의 필드를 1 개 이상 (객체가 돌려주기 전에) 변경하는 것이 필요하게 되는 경우가 있습니다. 이것은, 일반적으로, 복제하는 객체의 내부 「심층 구조」를 구성하는 가변 객체의 카피, 및 이러한 객체에의 참조를 카피에의 참조에 옮겨놓는 것을 의미합니다. 클래스에 프리미티브(primitive) 필드 또는 불변 객체에의 참조만이 포함되는 경우, 일반적으로,super.clone 에 의해 반환되는 객체내의 필드를 변경할 필요는 없습니다.
Object 클래스의 clone 메소드는, 특정의 복제 처리를 실행합니다. 우선, 이 객체의 클래스가 Cloneable 인터페이스를 구현하고 있지 않는 경우는,CloneNotSupportedException 가 throw 됩니다. 배열은 모두, 인터페이스 Cloneable 를 구현하고 있는 것이라고 보여지는 것에 주의해 주세요. 구현하고 있지 않는 경우, 이 메소드는 이 객체의 클래스의 새로운 인스턴스를 생성해, 그 필드를 모두, 이 객체의 대응하는 각 필드의 내용으로 초기화합니다. 이것은 대입과 같아, 필드의 내용 자신이 복제되는 것은 아닙니다. 즉 이 메소드는, 객체의 「shallow 복사」를 생성합니다만, 「딥 카피」는 생성하지 않습니다.
Object 클래스 자체는,Cloneable 인터페이스를 구현하지 않기 때문에, 클래스가 Object 인 clone 메소드를 호출하면(자), 실행시에 예외가 throw 됩니다.
Object 내의 clone Cloneable
public int getLineBreakIndex(int start,
float maxAdvance)
start 로 시작되어, 그래픽폭이 maxAdvance 의 행에 배치할 수 없는 최초의 문자의 인덱스를 돌려줍니다.
start - 측정을 개시하는 위치의 문자 인덱스.
start 는 절대 인덱스로,
단락의 개시 위치에 관한 것이 아닌maxAdvance - 행을 배치하는 그래픽폭
start 로 시작되어,
그래픽폭이 maxAdvance 이내의 행에 배치할 수 있다
마지막 문자의 뒤의 인덱스
IllegalArgumentException - start 가
단락의 개시 위치보다 전의 경우
public float getAdvanceBetween(int start,
int limit)
start 로 시작되어,limit 까지의 문자를 포함한 행의 그래픽폭을 돌려줍니다. start 와 limit 는 절대 인덱스로, 패러그래프의 스타트에는 관련하지 않습니다.
start - 측정을 개시하는 장소의 문자 인덱스limit - 측정을 종료하는 장소의 문자 인덱스
start 로부터 시작되어,
limit 까지의 문자를 포함한 행의 그래픽폭
IndexOutOfBoundsException - limit 가
start 보다 작은 경우
IllegalArgumentException - start 또는
limit 가 단락의 개시 위치와
종료 위치동안에 없는 경우
public TextLayout getLayout(int start,
int limit)
TextLayout 를 돌려줍니다.
start - 최초의 문자의 인덱스limit - 마지막 문자의 다음의 인덱스. 이것은
start 보다 크지 않으면 안 된다
start 로부터 시작되어,
limit 보다 작은 문자의 TextLayout
IndexOutOfBoundsException - limit 가
start 보다 작은 경우
IllegalArgumentException - start 또는
limit 가 단락의 개시 위치와
종료 위치동안에 없는 경우
public void insertChar(AttributedCharacterIterator newParagraph,
int insertPos)
TextMeasurer 가 현재 나타내는 패러그래프에 1 문자를 삽입하고 나서 TextMeasurer 를 갱신합니다. 이 호출뒤,TextMeasurer 는, 텍스트로부터 작성된 새로운 TextMeasurer 와 동등하게 됩니다. 그러나, 일반적으로은, 완전히 제로로부터 새로운 것을 작성하는 것보다 기존의 TextMeasurer 를 갱신한 (분)편이 효율적입니다.
newParagraph - 삽입을 실행한 후의 단락의
텍스트. null 는 불가insertPos - 문자를 삽입한 텍스트의
위치. newParagraph 의 개시 위치 이후로,
newParagraph 의 종료 위치에서(보다)
전
IndexOutOfBoundsException - insertPos 가
newParagraph 의 개시 위치보다 전,
또는 newParagraph 의 종료 위치와 같은가, 그 이후인 경우
NullPointerException - newParagraph 가
null 의 경우
public void deleteChar(AttributedCharacterIterator newParagraph,
int deletePos)
TextMeasurer 가 현재 나타내는 패러그래프로 1 문자를 삭제하고 나서 TextMeasurer 를 갱신합니다. 이 호출뒤,TextMeasurer 는, 텍스트로부터 작성된 새로운 TextMeasurer 와 동등하게 됩니다. 그러나, 일반적으로은, 완전히 제로로부터 새로운 것을 작성하는 것보다 기존의 TextMeasurer 를 갱신한 (분)편이 효율적입니다.
newParagraph - 삭제를 실행한 후의 단락의
텍스트. null 는 불가deletePos - 문자를 삭제한 텍스트의 위치.
newParagraph 의 개시 위치 이후로,
newParagraph 의 종료 위치를
넘지 않는다
- 예외:
IndexOutOfBoundsException - deletePos 가
newParagraph 의 개시 위치보다 전,
또는 newParagraph 의 종료 위치에서(보다) 뒤인 경우
NullPointerException - newParagraph 가
null 의 경우
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
| 개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 | |||||||||
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.