TextMeasurer 클래스

TextMeasurer 클래스

TextMeasurer 클래스는 줄 바꿈에 필요한 기본 연산을 제공해요. 주어진 advance까지 측정하고, 문자 범위의 advance를 결정하며, 문자 범위에 대한 TextLayout을 생성해요. 또한 단락을 증분 편집하는 메서드도 제공해요.

출처: Java API Reference

본문

TextMeasurer 객체는 단락 하나를 나타내는 AttributedCharacterIterator로 구성돼요. getBeginIndex 메서드가 반환하는 값은 첫 문자의 절대 인덱스를, getEndIndex가 반환하는 값은 마지막 문자 다음의 인덱스를 정의해요. 이 값들은 TextMeasurer 호출에서 사용할 인덱스 범위를 정의해요.

public final class TextMeasurer
extends Object
implements Cloneable

예를 들어 텍스트 범위의 advance나 줄 바꿈을 구하는 호출은 시작·끝 인덱스 사이의 값을 써야 해요. insertChardeleteChar 호출은 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는 그보다 저수준의 원시 연산이 필요한 곳에 쓰여요.

더 알아보기