JavaTM Platform
Standard Ed. 6

java.awt.font
클래스 TextMeasurer

java.lang.Object 
  상위를 확장 java.awt.font.TextMeasurer
모든 구현된 인터페이스:
Cloneable


public final class TextMeasurer
extends Object
implements Cloneable

TextMeasurer 클래스는, 유효폭의 측정, 문자 범위의 유효폭의 지정, 문자 범위의 TextLayout 의 작성 등, 개행에 필요한 기본 조작을 제공합니다. 패러그래프가 증가했을 경우의 편집 메소드도 제공합니다.  

TextMeasurer 객체는, 텍스트의 1 개의 패러그래프를 나타내는 AttributedCharacterIterator 로 구축합니다. AttributedCharacterIteratorgetBeginIndex 메소드가 돌려주는 값은, 최초의 문자의 절대 인덱스를 정의합니다. AttributedCharacterIteratorgetEndIndex 메소드가 돌려주는 값은, 마지막 문자의 다음의 인덱스를 정의합니다. 이러한 값에 의해,TextMeasurer 를 호출할 때 사용하는 인덱스의 범위가 정의됩니다. 예를 들어, 텍스트의 범위의 유효폭, 즉 텍스트의 범위의 개행을 취득하기 위한 호출에서는, 개시 인덱스치와 종료 인덱스치의 사이의 인덱스를 사용할 필요가 있습니다. insertChardeleteChar 를 호출하면(자),TextMeasurer 가 리셋 되어 이러한 호출로 건네받은 AttributedCharacterIterator 의 개시 인덱스와 종료 인덱스가 사용됩니다.  

대부분의 클라이언트는, 표준 개행 (각 행에 배치 가능한 한의 문자를 배치)을 구현하는 편리한 LineBreakMeasurer 를 사용합니다.

도입된 버젼:
1.3
관련 항목:
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
 

생성자 의 상세

TextMeasurer

public TextMeasurer(AttributedCharacterIterator  text,
                    FontRenderContext  frc)
소스 텍스트로부터 TextMeasurer 를 구축합니다. 소스 텍스트는 1 단락 전체가 됩니다.

파라미터:
text - 소스 단락. null 는 불가
frc - 텍스트를 정확하게 측정하기 위해서 필요한 그래픽스 디바이스에 관한 정보. null 는 불가
메소드의 상세

clone

protected Object  clone()
클래스 Object 의 기술:
이 객체의 카피를 작성해, 돌려줍니다. 「카피」의 정확한 이유는, 객체의 클래스에 의해 다릅니다. 일반적으로는, 임의의 객체 x 에 대해, 다음의 식
 x.clone() ! = x
하지만 true 이며, 다음의 식
 x.clone(). getClass() == x.getClass()
true 인 것입니다만, 이것들도 절대적인 요건이 아닙니다. 또 다음의 식
 x.clone(). equals(x)
도 일반적으로 true 가 됩니다만, 이것도 절대적인 요건이 아닙니다.  

일반적으로,super.clone 를 호출하는 것으로 반환되는 객체를 취득할 수 있습니다. 클래스 및 그 슈퍼 클래스 모든 것 (Object 를 제외한다)이 이 규칙에 따르는 경우,x.clone(). getClass() == x.getClass() 가 성립합니다.  

일반적으로, 이 메소드에 의해 반환되는 객체는, 이 객체 (복제되고 있다)로부터 독립하고 있을 필요가 있습니다. 이 독립성을 달성하기 위해(때문에),super.clone 가 돌려주는 객체의 필드를 1 개 이상 (객체가 돌려주기 전에) 변경하는 것이 필요하게 되는 경우가 있습니다. 이것은, 일반적으로, 복제하는 객체의 내부 「심층 구조」를 구성하는 가변 객체의 카피, 및 이러한 객체에의 참조를 카피에의 참조에 옮겨놓는 것을 의미합니다. 클래스에 프리미티브(primitive) 필드 또는 불변 객체에의 참조만이 포함되는 경우, 일반적으로,super.clone 에 의해 반환되는 객체내의 필드를 변경할 필요는 없습니다.  

Object 클래스의 clone 메소드는, 특정의 복제 처리를 실행합니다. 우선, 이 객체의 클래스가 Cloneable 인터페이스를 구현하고 있지 않는 경우는,CloneNotSupportedException 가 throw 됩니다. 배열은 모두, 인터페이스 Cloneable 를 구현하고 있는 것이라고 보여지는 것에 주의해 주세요. 구현하고 있지 않는 경우, 이 메소드는 이 객체의 클래스의 새로운 인스턴스를 생성해, 그 필드를 모두, 이 객체의 대응하는 각 필드의 내용으로 초기화합니다. 이것은 대입과 같아, 필드의 내용 자신이 복제되는 것은 아닙니다. 즉 이 메소드는, 객체의 「shallow 복사」를 생성합니다만, 「딥 카피」는 생성하지 않습니다.  

Object 클래스 자체는,Cloneable 인터페이스를 구현하지 않기 때문에, 클래스가 Objectclone 메소드를 호출하면(자), 실행시에 예외가 throw 됩니다.

오버라이드(override):
클래스 Object 내의 clone
반환값:
이 인스턴스의 복제
관련 항목:
Cloneable

getLineBreakIndex

public int getLineBreakIndex(int start,
                             float maxAdvance)
start 로 시작되어, 그래픽폭이 maxAdvance 의 행에 배치할 수 없는 최초의 문자의 인덱스를 돌려줍니다.

파라미터:
start - 측정을 개시하는 위치의 문자 인덱스. start 는 절대 인덱스로, 단락의 개시 위치에 관한 것이 아닌
maxAdvance - 행을 배치하는 그래픽폭
반환값:
start 로 시작되어, 그래픽폭이 maxAdvance 이내의 행에 배치할 수 있다 마지막 문자의 뒤의 인덱스
예외:
IllegalArgumentException - start 가 단락의 개시 위치보다 전의 경우

getAdvanceBetween

public float getAdvanceBetween(int start,
                               int limit)
start 로 시작되어,limit 까지의 문자를 포함한 행의 그래픽폭을 돌려줍니다. startlimit 는 절대 인덱스로, 패러그래프의 스타트에는 관련하지 않습니다.

파라미터:
start - 측정을 개시하는 장소의 문자 인덱스
limit - 측정을 종료하는 장소의 문자 인덱스
반환값:
start 로부터 시작되어, limit 까지의 문자를 포함한 행의 그래픽폭
예외:
IndexOutOfBoundsException - limitstart 보다 작은 경우
IllegalArgumentException - start 또는 limit 가 단락의 개시 위치와 종료 위치동안에 없는 경우

getLayout

public TextLayout  getLayout(int start,
                            int limit)
지정된 문자 범위의 TextLayout 를 돌려줍니다.

파라미터:
start - 최초의 문자의 인덱스
limit - 마지막 문자의 다음의 인덱스. 이것은 start 보다 크지 않으면 안 된다
반환값:
start 로부터 시작되어, limit 보다 작은 문자의 TextLayout
예외:
IndexOutOfBoundsException - limitstart 보다 작은 경우
IllegalArgumentException - start 또는 limit 가 단락의 개시 위치와 종료 위치동안에 없는 경우

insertChar

public void insertChar(AttributedCharacterIterator  newParagraph,
                       int insertPos)
TextMeasurer 가 현재 나타내는 패러그래프에 1 문자를 삽입하고 나서 TextMeasurer 를 갱신합니다. 이 호출뒤,TextMeasurer 는, 텍스트로부터 작성된 새로운 TextMeasurer 와 동등하게 됩니다. 그러나, 일반적으로은, 완전히 제로로부터 새로운 것을 작성하는 것보다 기존의 TextMeasurer 를 갱신한 (분)편이 효율적입니다.

파라미터:
newParagraph - 삽입을 실행한 후의 단락의 텍스트. null 는 불가
insertPos - 문자를 삽입한 텍스트의 위치. newParagraph 의 개시 위치 이후로, newParagraph 의 종료 위치에서(보다) 전
예외:
IndexOutOfBoundsException - insertPosnewParagraph 의 개시 위치보다 전, 또는 newParagraph 의 종료 위치와 같은가, 그 이후인 경우
NullPointerException - newParagraphnull 의 경우

deleteChar

public void deleteChar(AttributedCharacterIterator  newParagraph,
                       int deletePos)
TextMeasurer 가 현재 나타내는 패러그래프로 1 문자를 삭제하고 나서 TextMeasurer 를 갱신합니다. 이 호출뒤,TextMeasurer 는, 텍스트로부터 작성된 새로운 TextMeasurer 와 동등하게 됩니다. 그러나, 일반적으로은, 완전히 제로로부터 새로운 것을 작성하는 것보다 기존의 TextMeasurer 를 갱신한 (분)편이 효율적입니다.

파라미터:
newParagraph - 삭제를 실행한 후의 단락의 텍스트. null 는 불가
deletePos - 문자를 삭제한 텍스트의 위치. newParagraph 의 개시 위치 이후로, newParagraph 의 종료 위치를 넘지 않는다
예외:
IndexOutOfBoundsException - deletePosnewParagraph 의 개시 위치보다 전, 또는 newParagraph 의 종료 위치에서(보다) 뒤인 경우
NullPointerException - newParagraphnull 의 경우

JavaTM Platform
Standard Ed. 6

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

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.