TextMeasurer 클래스
TextMeasurer 클래스
TextMeasurer 클래스는 줄 바꿈에 필요한 기본 연산을 제공해요. 주어진 advance까지 측정하고, 문자 범위의 advance를 결정하며, 문자 범위에 대한 TextLayout을 생성해요. 또한 단락을 증분 편집하는 메서드도 제공해요.
본문
TextMeasurer 객체는 단락 하나를 나타내는 AttributedCharacterIterator로 구성돼요. getBeginIndex 메서드가 반환하는 값은 첫 문자의 절대 인덱스를, getEndIndex가 반환하는 값은 마지막 문자 다음의 인덱스를 정의해요. 이 값들은 TextMeasurer 호출에서 사용할 인덱스 범위를 정의해요.
public final class TextMeasurer
extends Object
implements Cloneable
예를 들어 텍스트 범위의 advance나 줄 바꿈을 구하는 호출은 시작·끝 인덱스 사이의 값을 써야 해요. insertChar와 deleteChar 호출은 TextMeasurer를 그 호출들에서 전달받은 AttributedCharacterIterator의 시작·끝 인덱스를 사용하도록 재설정해요.
주요 메서드
getAdvanceBetween(int start, int limit)— 두 인덱스 사이 텍스트의 advance를 반환해요.getLayout(int start, int limit)— 지정한 범위의TextLayout을 만들어요.getLineBreakIndex(int start, float maxAdvance)— 시작 인덱스에서 최대 advance를 넘지 않는 줄 바꿈 위치를 반환해요.insertChar(AttributedCharacterIterator newParagraph, int insertPos)— 단일 문자 삽입을 반영해요.deleteChar(AttributedCharacterIterator newParagraph, int deletePos)— 단일 문자 삭제를 반영해요.clone()— 복사본을 만들어요.
사용 참고
대부분의 클라이언트는 더 편리한 LineBreakMeasurer를 사용해요. LineBreakMeasurer는 표준 줄 바꿈 정책(각 줄에 들어맞는 만큼의 단어 배치)을 구현해요. TextMeasurer는 그보다 저수준의 원시 연산이 필요한 곳에 쓰여요.