TextMeasurer (Java Platform SE 6) - xrath.com 에서 번역됨

개요 | 패키지 | 클래스 | 사용 | 계층 트리 | 비추천 API | 색인 | 헬프

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` 로 구축합니다. `AttributedCharacterIterator` 의 `getBeginIndex` 메소드가 돌려주는 값은, 최초의 문자의 절대 인덱스를 정의합니다. `AttributedCharacterIterator` 의 `getEndIndex` 메소드가 돌려주는 값은, 마지막 문자의 다음의 인덱스를 정의합니다. 이러한 값에 의해,`TextMeasurer` 를 호출할 때 사용하는 인덱스의 범위가 정의됩니다. 예를 들어, 텍스트의 범위의 유효폭, 즉 텍스트의 범위의 개행을 취득하기 위한 호출에서는, 개시 인덱스치와 종료 인덱스치의 사이의 인덱스를 사용할 필요가 있습니다. `insertChar` 및 `deleteChar` 를 호출하면(자),`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` 인터페이스를 구현하지 않기 때문에, 클래스가 `Object` 인 `clone` 메소드를 호출하면(자), 실행시에 예외가 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` 까지의 문자를 포함한 행의 그래픽폭을 돌려줍니다. `start` 와 `limit` 는 절대 인덱스로, 패러그래프의 스타트에는 관련하지 않습니다.

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

### getLayout

    public TextLayout  getLayout(int start,
                                int limit)

  지정된 문자 범위의 `TextLayout` 를 돌려줍니다.

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

### insertChar

    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` 의 경우

### deleteChar

    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` 의 경우

개요 | 패키지 | 클래스 | 사용 | 계층 트리 | 비추천 API | 색인 | 헬프

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 도 참조해 주세요.