JavaTM Platform
Standard Ed. 6

javax.swing.text
클래스 AbstractDocument

java.lang.Object 
  상위를 확장 javax.swing.text.AbstractDocument
모든 구현된 인터페이스:
Serializable , Document
직계의 기존의 서브 클래스:
DefaultStyledDocument , PlainDocument


public abstract class AbstractDocument
extends Object
implements Document , Serializable

문서 인터페이스의 구현이며, 각종의 문서를 구현할 때의 베이스가 됩니다. 이 레벨에서는 정책가 매우 몇 안 되는의로, 거기에 응해 사용이 어려워집니다.

이 클래스는, 문서의 락 기구를 구현합니다. 이 기구에 의해, 복수의 읽어들여 또는 1 개의 기입을 취급할 수 있게 되어, 복수의 기입이 있어도, 문서의 옵저버 전원으로 이전의 변경이 통지될 때까지, 문서에 다른 변경을 더할 수가 없습니다. read 락의 취득 및 해제에는,render 메소드를 사용합니다. 기입 락은, 문서를 변경하는 메소드에 의해 취득되어 그 메소드 호출동안은 보관 유지됩니다. 통지는, 문서를 변경하는 thread상에서 행해집니다. 이 thread는, 통지동안은 문서에의 완전한 read 액세스권을 가지고 있습니다. 한편, 그 외의 기입측은, 통지가 완료할 때까지는 액세스가 용서되지 않습니다. 통지는 Beans 이벤트 통지이며, 모든 청취자가 통지를 받을 때까지는 다른 변경을 허가하지 않습니다.

이 클래스로부터 서브 클래스화 된 임의의 모델로, BasicTextUI 로부터 파생한 Look & Feel 의 구현을 가지는 텍스트 컴퍼넌트와 관련해 사용되는 것은, 안전하게 비동기에게 갱신됩니다. 이것은, 문서의 타입이 AbstractDocument 의 경우에는, View 계층에의 모든 액세스가 BasicTextUI 에 의해 직렬화 되기 때문입니다. 락 기구에서는, 독립한 thread의 View 계층에의 액세스는 반드시 DocumentListener 메소드를 개입시켜 행해져 또, 어느 1 개의 시점에는 액티브한 thread는 1 개 밖에 존재하지 않다고 봅니다.

동기의 지원가 필요한 경우는, 한층 더 다음의 전제 조건이 있습니다. 임의의 DocumentListener 및 UndoListener 의 구현에 대한 코드 패스가 thread에 대해서 안전한 것, 또, 데드락을 피하는 경우에는, 컴퍼넌트의 락에 액세스 하지 않는 것, 이라고 하는 조건입니다. JComponent 의 repaint 메소드 및 revalidate 메소드는 안전합니다.

AbstractDocument 는 문서의 마지막에 암묵의 브레이크를 모델화합니다. 다양한 일이 가능합니다만, 그 1 개(살)로서 마지막 문자의 후에 caret를 배치할 수 있습니다. 그 결과, Content 보다 짧은 getLength 를 돌려줍니다. 독자적인 Content 를 생성하는 경우는, 문자를 추가해 초기화하도록 해 주세요. 이 예에 대해서는 StringContent 와 GapContent 를 참조해 주세요. 다른 전제 조건은, 암묵의 최종 문자를 모델화하는 Elements 는 endOffset == (getLength() + 1)가 되는 것입니다. 예를 들어, DefaultStyledDocument 의 경우는 getParagraphElement(getLength()). getEndOffset() == getLength() + 1 입니다.

경고: 이 클래스의 직렬화 된 객체는, 향후의 Swing 릴리스와 호환은 아니게 될 예정입니다. 현재의 직렬화의 지원는, 단기간의 운용이나, 같은 버젼의 Swing 를 실행하는 어플리케이션간의 RMI 에 적절하고 있습니다. JDK Version 1.4 이후, 모든 JavaBeans 의 장기간의 운용 지원는,java.beans 패키지에 추가되고 있습니다. 자세한 것은,XMLEncoder 를 참조해 주세요.


상자의 클래스의 개요
 class AbstractDocument.AbstractElement
          요소의 추상 부분을 구현합니다.
static interface AbstractDocument.AttributeContext
          이 인터페이스는, 플러그 인 가능한 속성 압축 수법을 MutableAttributeSet 의 구현으로 사용 가능하게 하기 위해서 사용할 수 있습니다.
 class AbstractDocument.BranchElement
          다른 요소를 포함한 복합 요소를 구현합니다.
static interface AbstractDocument.Content
          편집 가능한 문자의 순서를 나타내는 인터페이스입니다.
 class AbstractDocument.DefaultDocumentEvent
          문서가 변경되었을 경우에, 문서의 변경을 포함합니다.
static class AbstractDocument.ElementEdit
          문서의 이벤트에 추가할 수 있는 ElementChange 의 구현입니다.
 class AbstractDocument.LeafElement
          어떤 종류의 컨텐츠를 직접 나타내는 요소를 구현합니다.
 
필드의 개요
protected static String BAD_LOCATION
          부정한 위치를 나타내는 에러 메세지입니다.
static String BidiElementName
          단방향의 실행을 나타내는 요소의 이름입니다.
static String ContentElementName
          내용을 나타내는 요소의 이름입니다.
static String ElementNameAttribute
          요소의 이름의 지정에 사용하는 속성의 이름입니다.
protected  EventListenerList listenerList
          문서의 이벤트 청취자입니다.
static String ParagraphElementName
          단락을 나타내는 요소의 이름입니다.
static String SectionElementName
          행, 단락등의 섹션을 나타내는 요소의 이름입니다.
 
인터페이스 javax.swing.text. Document 로부터 상속된 필드
StreamDescriptionProperty , TitleProperty
 
생성자 의 개요
protected AbstractDocument (AbstractDocument.Content  data)
          하등의 내용 기억 기구를 랩 한, 새로운 AbstractDocument 를 구축합니다.
protected AbstractDocument (AbstractDocument.Content  data, AbstractDocument.AttributeContext  context)
          하등의 내용 기억 기구를 랩 한, 새로운 AbstractDocument 를 구축합니다.
 
메소드의 개요
 void addDocumentListener (DocumentListener  listener)
          문서 청취자를 추가해, 변경이 있었을 때에 통지되도록(듯이) 합니다.
 void addUndoableEditListener (UndoableEditListener  listener)
          임의의 변경을 통지하는 un-do 청취자를 추가합니다.
protected  Element createBranchElement (Element  parent, AttributeSet  a)
          문서의 가지의 요소를 작성합니다.
protected  Element createLeafElement (Element  parent, AttributeSet  a, int p0, int p1)
          문서의 잎의 요소를 작성합니다.
 Position createPosition (int offs)
          문서가 변경되었을 때에, 변경을 추적하는 위치를 돌려줍니다.
 void dump (PrintStream  out)
          진단용의 덤프를 출력합니다.
protected  void fireChangedUpdate (DocumentEvent  e)
          통지의 전달 대상을, 지정된 이벤트형으로 등록한 모든 청취자에게 통지합니다.
protected  void fireInsertUpdate (DocumentEvent  e)
          통지의 전달 대상을, 지정된 이벤트형으로 등록한 모든 청취자에게 통지합니다.
protected  void fireRemoveUpdate (DocumentEvent  e)
          통지의 전달 대상을, 지정된 이벤트형으로 등록한 모든 청취자에게 통지합니다.
protected  void fireUndoableEditUpdate (UndoableEditEvent  e)
          통지의 전달 대상을, 지정된 이벤트형으로 등록한 모든 청취자에게 통지합니다.
 int getAsynchronousLoadPriority ()
          비동기 로드의 우선 순위를 가져옵니다.
protected  AbstractDocument.AttributeContext getAttributeContext ()
          속성을 관리하기 위한 문맥을 돌려줍니다.
 Element getBidiRootElement ()
          문서의 쌍방향 구조의 루트 요소를 돌려줍니다.
protected  AbstractDocument.Content getContent ()
          문서의 내용을 가져옵니다.
protected  Thread getCurrentWriter ()
          현재의 기입 thread가 있으면, 그것을 가져옵니다.
abstract  Element getDefaultRootElement ()
          루트 요소를 돌려줍니다.
 DocumentFilter getDocumentFilter ()
          삽입 또는 삭제의 필터를 실시하는 DocumentFilter 를 돌려줍니다.
 DocumentListener [] getDocumentListeners ()
          이 문서에 등록된, 모든 문서 청취자로부터 완성되는 배열을 돌려줍니다.
 Dictionary <Object ,Object > getDocumentProperties ()
          프로퍼티세트의 관리를 지원합니다.
 Position getEndPosition ()
          문서의 말미를 나타내는 위치를 돌려줍니다.
 int getLength ()
          데이터의 길이를 돌려줍니다.
<T extends EventListener >
T[]
getListeners (Class <T> listenerType)
          이 문서에 FooListener 로서 현재 등록되어 모든 객체의 배열을 돌려줍니다.
abstract  Element getParagraphElement (int pos)
          지정된 위치를 보관 유지하는 단락 요소를 돌려줍니다.
 Object getProperty (Object  key)
          프로퍼티의 값을 조사하는데 편리한 메소드입니다.
 Element [] getRootElements ()
          정의되고 있는 루트 요소를 모두 가져옵니다.
 Position getStartPosition ()
          문서의 선두를 나타내는 위치를 돌려줍니다.
 String getText (int offset, int length)
          문서로부터 텍스트의 순서를 가져옵니다.
 void getText (int offset, int length, Segment  txt)
          문서의 지정 부분내에 있는 텍스트를 가져옵니다.
 UndoableEditListener [] getUndoableEditListeners ()
          이 문서에 등록된, 모든 취소 가능 편집 청취자로부터 완성되는 배열을 돌려줍니다.
 void insertString (int offs, String  str, AttributeSet  a)
          문서에 내용을 삽입합니다.
protected  void insertUpdate (AbstractDocument.DefaultDocumentEvent  chng, AttributeSet  attr)
          문서 구조를 텍스트 삽입의 결과로 갱신합니다.
protected  void postRemoveUpdate (AbstractDocument.DefaultDocumentEvent  chng)
          문서 구조를 텍스트 삭제의 결과로 갱신합니다.
 void putProperty (Object  key, Object  value)
          프로퍼티의 값을 포함하는데 편리한 메소드입니다.
 void readLock ()
          락을 취득해, 문서로부터 하등의 상태의 read를 개시할 수 있도록(듯이) 합니다.
 void readUnlock ()
          읽을 락을 해제합니다.
 void remove (int offs, int len)
          문서로부터 내용을 삭제합니다.
 void removeDocumentListener (DocumentListener  listener)
          문서 청취자를 삭제합니다.
 void removeUndoableEditListener (UndoableEditListener  listener)
          un-do 청취자를 삭제합니다.
protected  void removeUpdate (AbstractDocument.DefaultDocumentEvent  chng)
          문서 구조를 텍스트 삭제의 결과로 갱신합니다.
 void render (Runnable  r)
          모델이 비동기적인 갱신을 지원하고 있는 경우, 병행성에 직면해 모델을 안전하게 draw 할 수 있도록(듯이) 합니다.
 void replace (int offset, int length, String  text, AttributeSet  attrs)
          offset 로부터 offset + length 까지의 텍스트 영역을 삭제해,text 에 옮겨놓습니다.
 void setAsynchronousLoadPriority (int p)
          비동기 로드의 우선 순위를 설정합니다.
 void setDocumentFilter (DocumentFilter  filter)
          DocumentFilter 를 설정합니다.
 void setDocumentProperties (Dictionary <Object ,Object > x)
          이 문서의 문서 프로퍼티의 사전을 옮겨놓습니다.
protected  void writeLock ()
          락을 취득해, 락이 보호하고 있는 문서의 변경을 개시할 수 있도록(듯이) 합니다.
protected  void writeUnlock ()
          이전 writeLock 경유로 취득된 기입 락을 해제합니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

필드의 상세

listenerList

protected EventListenerList  listenerList
문서의 이벤트 청취자입니다.


BAD_LOCATION

protected static final String  BAD_LOCATION
부정한 위치를 나타내는 에러 메세지입니다.

관련 항목:
정수 필드치

ParagraphElementName

public static final String  ParagraphElementName
단락을 나타내는 요소의 이름입니다.

관련 항목:
정수 필드치

ContentElementName

public static final String  ContentElementName
내용을 나타내는 요소의 이름입니다.

관련 항목:
정수 필드치

SectionElementName

public static final String  SectionElementName
행, 단락등의 섹션을 나타내는 요소의 이름입니다.

관련 항목:
정수 필드치

BidiElementName

public static final String  BidiElementName
단방향의 실행을 나타내는 요소의 이름입니다.

관련 항목:
정수 필드치

ElementNameAttribute

public static final String  ElementNameAttribute
요소의 이름의 지정에 사용하는 속성의 이름입니다.

관련 항목:
정수 필드치
생성자 의 상세

AbstractDocument

protected AbstractDocument(AbstractDocument.Content  data)
하등의 내용 기억 기구를 랩 한, 새로운 AbstractDocument 를 구축합니다.

파라미터:
data - 컨텐츠

AbstractDocument

protected AbstractDocument(AbstractDocument.Content  data,
                           AbstractDocument.AttributeContext  context)
하등의 내용 기억 기구를 랩 한, 새로운 AbstractDocument 를 구축합니다.

파라미터:
data - 컨텐츠
context - 속성의 문맥
메소드의 상세

getDocumentProperties

public Dictionary <Object ,Object > getDocumentProperties()
프로퍼티세트의 관리를 지원합니다. 호출측은,documentProperties 의 사전을 사용해, 문서 전체에 관한 프로퍼티의 주석을 부가할 수 있습니다.

반환값:
null 이외의 Dictionary
관련 항목:
setDocumentProperties(java.util.Dictionary)

setDocumentProperties

public void setDocumentProperties(Dictionary <Object ,Object > x)
이 문서의 문서 프로퍼티의 사전을 옮겨놓습니다.

파라미터:
x - 신규 사전
관련 항목:
getDocumentProperties()

fireInsertUpdate

protected void fireInsertUpdate(DocumentEvent  e)
통지의 전달 대상을, 지정된 이벤트형으로 등록한 모든 청취자에게 통지합니다. 이벤트 인스턴스는, fire 메소드에게 건네지는 파라미터를 사용해 간단하게 생성됩니다.

파라미터:
e - 이벤트
관련 항목:
EventListenerList

fireChangedUpdate

protected void fireChangedUpdate(DocumentEvent  e)
통지의 전달 대상을, 지정된 이벤트형으로 등록한 모든 청취자에게 통지합니다. 이벤트 인스턴스는, fire 메소드에게 건네지는 파라미터를 사용해 간단하게 생성됩니다.

파라미터:
e - 이벤트
관련 항목:
EventListenerList

fireRemoveUpdate

protected void fireRemoveUpdate(DocumentEvent  e)
통지의 전달 대상을, 지정된 이벤트형으로 등록한 모든 청취자에게 통지합니다. 이벤트 인스턴스는, fire 메소드에게 건네지는 파라미터를 사용해 간단하게 생성됩니다.

파라미터:
e - 이벤트
관련 항목:
EventListenerList

fireUndoableEditUpdate

protected void fireUndoableEditUpdate(UndoableEditEvent  e)
통지의 전달 대상을, 지정된 이벤트형으로 등록한 모든 청취자에게 통지합니다. 이벤트 인스턴스는, fire 메소드에게 건네지는 파라미터를 사용해 간단하게 생성됩니다.

파라미터:
e - 이벤트
관련 항목:
EventListenerList

getListeners

public <T extends EventListener > T[] getListeners(Class <T> listenerType)
이 문서에 FooListener 로서 현재 등록되어 모든 객체의 배열을 돌려줍니다. FooListener 는,addFooListener 메소드를 사용해 등록합니다.

FooListener.class 라고 하는 클래스 리터럴을 사용해,listenerType 인수를 지정할 수 있습니다. 예를 들어 이하의 코드를 사용해, 문서 d 를 그 문서 청취자에게 조회할 수 있습니다.

DocumentListener[] mls = (DocumentListener[])(d.getListeners(DocumentListener.class));
이러한 청취자가 없는 경우는 빈 상태(empty)의 배열을 돌려줍니다.

파라미터:
listenerType - 요구되는 청취자의 형태. 이 파라미터는, java.util.EventListener 의 하위 인터페이스를 지정한다
반환값:
이 컴퍼넌트에 FooListener 로서 등록되어 모든 객체의 배열. 이 컴퍼넌트상의 FooListener. 그러한 청취자가 추가되어 있지 않은 경우는 빈 상태(empty)의 배열
예외:
ClassCastException - listenerTypejava.util.EventListener 를 구현하는 클래스 또는 인터페이스를 지정하지 않는 경우
도입된 버젼:
1.3
관련 항목:
getDocumentListeners() , getUndoableEditListeners()

getAsynchronousLoadPriority

public int getAsynchronousLoadPriority()
비동기 로드의 우선 순위를 가져옵니다. 0 보다 작은 값의 경우, 문서는 비동기에게는 로드 되지 않습니다.

반환값:
비동기 로드의 우선 순위. 문서가 비동기에 로드 되지 않는 경우는 -1

setAsynchronousLoadPriority

public void setAsynchronousLoadPriority(int p)
비동기 로드의 우선 순위를 설정합니다.

파라미터:
p - 새로운 비동기 로드의 우선 순위. 0 보다 작은 값의 경우, 문서는 비동기에 로드 되지 않는다

setDocumentFilter

public void setDocumentFilter(DocumentFilter  filter)
DocumentFilter 를 설정합니다. DocumentFilterinsertremove 에게 건네져 조건부로 텍스트의 삽입이나 삭제가 가능하게 됩니다. null 치는, 필터가 실행되지 않는 것을 나타냅니다.

파라미터:
filter - 텍스트의 제약에 사용되는 DocumentFilter
도입된 버젼:
1.4
관련 항목:
getDocumentFilter()

getDocumentFilter

public DocumentFilter  getDocumentFilter()
삽입 또는 삭제의 필터를 실시하는 DocumentFilter 를 돌려줍니다. 반환값 null 는, 필터가 실행되지 않는 것을 나타냅니다.

반환값:
DocumentFilter
도입된 버젼:
1.4
관련 항목:
setDocumentFilter(javax.swing.text.DocumentFilter)

render

public void render(Runnable  r)
모델이 비동기적인 갱신을 지원하고 있는 경우, 병행성에 직면해 모델을 안전하게 draw 할 수 있도록(듯이) 합니다. 지정된 실행 가능 파일은, 그 실행중으로 아무 변경도 없게 모델을 안전하게 읽어내는 방법으로 실행됩니다. 실행 가능 파일은, 그것 자신으로 변경을 더할 수 없습니다.

이 구현은, 실행하고 있는 동안, read 락을 취득하기 위한의 것입니다. 복수를 동시에 실행하고 있는 경우, 액티브하게 draw중의 객체가 있는 동안은, 모든 기입이 블록 됩니다. 객체가 예외를 throw 했을 경우, 그 락은 안전하게 해제됩니다. 결코 종료하지 않는 객체에 대한 보호는 없고, 사실상, 문서는 자신이 존재하는 동안 쭉 락 됩니다.

지정된 객체가 어떠한 변경을 시도해도, 데드락이 발생합니다. 이 상황을 검지할 수 있도록(듯이) 하기 위해서 개개의 draw thread를 추적할 수 없습니다. 또, 서브 클래스는, draw thread의 추적, 및 에러의 throw의 오버헤드를 발생시킬 가능성이 있습니다.

이 메소드는 thread에 대해서 안전합니다만, 대부분의 Swing 메소드는 다릅니다. 자세한 것은,「How to Use Threads」를 참조해 주세요.

정의:
인터페이스 Document 내의 render
파라미터:
r - 실행하는 렌더링

getLength

public int getLength()
데이터의 길이를 돌려줍니다. 사용자의 데이터를 나타내는 내용의 문자수입니다.

정의:
인터페이스 Document 내의 getLength
반환값:
길이 >= 0
관련 항목:
Document.getLength()

addDocumentListener

public void addDocumentListener(DocumentListener  listener)
문서 청취자를 추가해, 변경이 있었을 때에 통지되도록(듯이) 합니다.

정의:
인터페이스 Document 내의 addDocumentListener
파라미터:
listener - 추가하는 DocumentListener
관련 항목:
Document.addDocumentListener(javax.swing.event.DocumentListener)

removeDocumentListener

public void removeDocumentListener(DocumentListener  listener)
문서 청취자를 삭제합니다.

정의:
인터페이스 Document 내의 removeDocumentListener
파라미터:
listener - 삭제하는 DocumentListener
관련 항목:
Document.removeDocumentListener(javax.swing.event.DocumentListener)

getDocumentListeners

public DocumentListener [] getDocumentListeners()
이 문서에 등록된, 모든 문서 청취자로부터 완성되는 배열을 돌려줍니다.

반환값:
이 문서의 모든 DocumentListener. 문서 청취자가 현재 등록되지 않은 경우는 빈 상태(empty)의 배열
도입된 버젼:
1.4
관련 항목:
addDocumentListener(javax.swing.event.DocumentListener) , removeDocumentListener(javax.swing.event.DocumentListener)

addUndoableEditListener

public void addUndoableEditListener(UndoableEditListener  listener)
임의의 변경을 통지하는 un-do 청취자를 추가합니다. UndoableEdit 로 실행되는 「바탕으로 되돌리는/재실행」조작은, 적절한 DocumetnEvent 를 발생시켜, 뷰 (복수의 경우도 있어)를 모델과 동기 시킵니다.

정의:
인터페이스 Document 내의 addUndoableEditListener
파라미터:
listener - 추가하는 UndoableEditListener
관련 항목:
Document.addUndoableEditListener(javax.swing.event.UndoableEditListener)

removeUndoableEditListener

public void removeUndoableEditListener(UndoableEditListener  listener)
un-do 청취자를 삭제합니다.

정의:
인터페이스 Document 내의 removeUndoableEditListener
파라미터:
listener - 삭제하는 UndoableEditListener
관련 항목:
Document.removeDocumentListener(javax.swing.event.DocumentListener)

getUndoableEditListeners

public UndoableEditListener [] getUndoableEditListeners()
이 문서에 등록된, 모든 취소 가능 편집 청취자로부터 완성되는 배열을 돌려줍니다.

반환값:
이 문서의 모든 UndoableEditListener. 취소 가능 편집 청취자가 현재 등록되지 않은 경우는 빈 상태(empty)의 배열
도입된 버젼:
1.4
관련 항목:
addUndoableEditListener(javax.swing.event.UndoableEditListener) , removeUndoableEditListener(javax.swing.event.UndoableEditListener)

getProperty

public final Object  getProperty(Object  key)
프로퍼티의 값을 조사하는데 편리한 메소드입니다. 이것은 이하와 동등합니다.
 getDocumentProperties(). get(key);
 

정의:
인터페이스 Document 내의 getProperty
파라미터:
key - null 이외의 프로퍼티 키
반환값:
이 프로퍼티의 값 또는 null
관련 항목:
getDocumentProperties()

putProperty

public final void putProperty(Object  key,
                              Object  value)
프로퍼티의 값을 포함하는데 편리한 메소드입니다. 이것은 이하와 동등합니다.
 getDocumentProperties(). put(key, value);
 
valuenull 의 경우, 이 메소드는 프로퍼티을 삭제합니다.

정의:
인터페이스 Document 내의 putProperty
파라미터:
key - null 이외의 키
value - 프로퍼티의 값
관련 항목:
getDocumentProperties()

remove

public void remove(int offs,
                   int len)
            throws BadLocationException 
문서로부터 내용을 삭제합니다. 내용의 삭제에 의해, 실제의 변경이 일어날 때까지의 기입 락이 발생합니다. 옵저버는, 이 메소드를 호출한 thread상에서 변경의 통지를 받습니다.

이 메소드는 thread에 대해서 안전합니다만, 대부분의 Swing 메소드는 다릅니다. 자세한 것은,「How to Use Threads」를 참조해 주세요.

정의:
인터페이스 Document 내의 remove
파라미터:
offs - 개시 오프셋(offset) >= 0
len - 삭제 대상의 문자수 >= 0
예외:
BadLocationException - 지정된 삭제 위치가 문서내의 유효한 위치가 아닌 경우
관련 항목:
Document.remove(int, int)

replace

public void replace(int offset,
                    int length,
                    String  text,
                    AttributeSet  attrs)
             throws BadLocationException 
offset 로부터 offset + length 까지의 텍스트 영역을 삭제해,text 에 옮겨놓습니다. 이 동작이 어떻게 구현될까는 그 구현에 좌우되어 삭제하고 나서 삽입을 실시한다고 하는 것처럼 다른 2 개의 조작으로서 구현하는 일도 있으면, 치환을 실시한다고 하는 것처럼 1 개의 기본 조작으로서 구현하는 일도 있습니다.

파라미터:
offset - 자 요소의 인덱스
length - 삭제하는 텍스트의 길이. 0 의 경우는 아무것도 삭제되지 않는
text - 삽입하는 텍스트. null 의 경우, 텍스트는 삽입되지 않는
attrs - 삽입된 텍스트의 속성을 나타내는 AttributeSet. null 도 가능. 빈 상태(empty)의 속성 세트로서 다루어지지만, 서브 클래스에서 정확한 해석을 한다
예외:
BadLocationException - 지정된 위치가 문서내의 유효한 위치가 아닌 경우
도입된 버젼:
1.4

insertString

public void insertString(int offs,
                         String  str,
                         AttributeSet  a)
                  throws BadLocationException 
문서에 내용을 삽입합니다. 내용의 삽입에 의해, 실제의 변경이 일어날 때까지는 기입 락이 보관 유지됩니다. 그 후로, 기입 락을 글로브 하고 있는 thread상의 옵저버에 통지를 합니다.

이 메소드는 thread에 대해서 안전합니다만, 대부분의 Swing 메소드는 다릅니다. 자세한 것은,「How to Use Threads」를 참조해 주세요.

정의:
인터페이스 Document 내의 insertString
파라미터:
offs - 개시 오프셋(offset) >= 0
str - 삽입하는 캐릭터 라인. null 나 빈 상태(empty)의 캐릭터 라인의 경우는 아무것도 하지 않는
a - 삽입된 컨텐츠의 속성
예외:
BadLocationException - 지정된 삽입 위치가 문서내의 유효한 위치가 아닌 경우
관련 항목:
Document.insertString(int, java.lang.String, javax.swing.text.AttributeSet)

getText

public String  getText(int offset,
                      int length)
               throws BadLocationException 
문서로부터 텍스트의 순서를 가져옵니다.

정의:
인터페이스 Document 내의 getText
파라미터:
offset - 개시 오프셋(offset) >= 0
length - 검색 대상의 문자수 >= 0
반환값:
텍스트
예외:
BadLocationException - 지정된 범위에, 문서내의 무효인 위치가 포함되는 경우
관련 항목:
Document.getText(int, int)

getText

public void getText(int offset,
                    int length,
                    Segment  txt)
             throws BadLocationException 
문서의 지정 부분내에 있는 텍스트를 가져옵니다.

txt 파라미터의 partialReturn 프로퍼티이 false 의 경우, Segment 로 반환된 데이터는, 요구된 길이 전체가 되어, 데이터의 포함 방법에 따라 카피가 되는 경우가 되지 않는 경우가 있습니다. partialReturn 프로퍼티이 true 의 경우는, 카피를 작성하지 않아도 돌려주는 것이 가능한 텍스트의 양만이 돌려주어집니다. 부분적으로 돌려주는 것으로, 문서의 대부분을 스캔 하는 경우의 퍼포먼스가 향상합니다. 부분적으로 돌려주는 방법으로 문서 전체에 액세스 하는 예를 다음에 나타냅니다.

   int nleft = doc.getDocumentLength();
   Segment text = new Segment();
   int offs = 0;
   text.setPartialReturn(true);   
   while (nleft > 0) {
       doc.getText(offs, nleft, text);
       // do something with text
       nleft -= text.count;
       offs += text.count;
   }
 

정의:
인터페이스 Document 내의 getText
파라미터:
offset - 개시 오프셋(offset) >= 0
length - 검색 대상의 문자수 >= 0
txt - 텍스트를 취득하는 Segment 객체
예외:
BadLocationException - 지정된 범위에, 문서내의 무효인 위치가 포함되는 경우

createPosition

public Position  createPosition(int offs)
                        throws BadLocationException 
문서가 변경되었을 때에, 변경을 추적하는 위치를 돌려줍니다.

이 메소드는 thread에 대해서 안전합니다만, 대부분의 Swing 메소드는 다릅니다. 자세한 것은,「How to Use Threads」를 참조해 주세요.

정의:
인터페이스 Document 내의 createPosition
파라미터:
offs - 모델내의 위치 >= 0
반환값:
위치
예외:
BadLocationException - 지정된 위치가, 관련지을 수 있었던 문서내의 유효한 위치를 나타내지 않는 경우
관련 항목:
Document.createPosition(int)

getStartPosition

public final Position  getStartPosition()
문서의 선두를 나타내는 위치를 돌려줍니다. 반환된 위치는, 변경을 추적해 문서의 선두에 항상 위치하기 위해서 이용할 수 있습니다.

정의:
인터페이스 Document 내의 getStartPosition
반환값:
위치

getEndPosition

public final Position  getEndPosition()
문서의 말미를 나타내는 위치를 돌려줍니다. 반환된 위치는, 변경을 추적해 문서의 말미에 항상 위치하기 위해서 이용할 수 있습니다.

정의:
인터페이스 Document 내의 getEndPosition
반환값:
위치

getRootElements

public Element [] getRootElements()
정의되고 있는 루트 요소를 모두 가져옵니다. 일반적으로, 루트 요소는 1 개 밖에 없습니다. 그 때문에, 디폴트의 구현에서는 디폴트 루트 요소가 돌려주어집니다.

정의:
인터페이스 Document 내의 getRootElements
반환값:
루트 요소

getDefaultRootElement

public abstract Element  getDefaultRootElement()
루트 요소를 돌려줍니다. 요소의 구조에 뷰를 할당하는 다른 기구가 제공되지 않는 한, 이 루트 요소가 뷰의 베이스가 됩니다.

정의:
인터페이스 Document 내의 getDefaultRootElement
반환값:
루트 요소
관련 항목:
Document.getDefaultRootElement()

getBidiRootElement

public Element  getBidiRootElement()
문서의 쌍방향 구조의 루트 요소를 돌려줍니다. 이 루트 요소의 아이는, 지정된 Unicode 쌍방향 구조 레벨의 문자의 줄을 나타냅니다.


getParagraphElement

public abstract Element  getParagraphElement(int pos)
지정된 위치를 보관 유지하는 단락 요소를 돌려줍니다. 서브 클래스는, 무엇이 단락을 구성하는 것인지를 자신으로 정의하지 않으면 안됩니다. 그 때는, 단락을 구성하는 것이, 적어도 텍스트의 체크이며, 그에 대한 Unicode 의 쌍방향 알고리즘을 실행할 수 있을 필요가 있는 것에 주의해 주세요.

파라미터:
pos - 개시 오프셋(offset) >= 0
반환값:
요소

getAttributeContext

protected final AbstractDocument.AttributeContext  getAttributeContext()
속성을 관리하기 위한 문맥을 돌려줍니다. 이 메소드 (은)는, AttributeSet 의 정보의 압축에 사용되는 방법을 사실상 확립합니다.

반환값:
문맥

insertUpdate

protected void insertUpdate(AbstractDocument.DefaultDocumentEvent  chng,
                            AttributeSet  attr)
문서 구조를 텍스트 삽입의 결과로 갱신합니다. 이것은, 기입 락내에서 발생합니다. 이 클래스의 서브 클래스가 이 메소드를 다시 구현했을 경우는, 슈퍼 클래스에도 처리를 위양 합니다.

파라미터:
chng - 변경의 설명
attr - 변경의 속성

removeUpdate

protected void removeUpdate(AbstractDocument.DefaultDocumentEvent  chng)
문서 구조를 텍스트 삭제의 결과로 갱신합니다. 이 메소드의 호출은, 텍스트가 Content 로부터 실제로 삭제되기 이전에 실행됩니다. 이것은, 기입 락내에서 발생합니다. 이 클래스의 서브 클래스가 이 메소드를 다시 구현했을 경우는, 슈퍼 클래스에도 처리를 위양 합니다.

파라미터:
chng - 변경의 설명

postRemoveUpdate

protected void postRemoveUpdate(AbstractDocument.DefaultDocumentEvent  chng)
문서 구조를 텍스트 삭제의 결과로 갱신합니다. 이 메소드의 호출은, 텍스트가 Content 로부터 실제로 삭제된 뒤에 실행됩니다. 이것은, 기입 락내에서 발생합니다. 이 클래스의 서브 클래스가 이 메소드를 다시 구현했을 경우는, 슈퍼 클래스에도 처리를 위양 합니다.

파라미터:
chng - 변경의 설명

dump

public void dump(PrintStream  out)
진단용의 덤프를 출력합니다.

파라미터:
out - 출력 스트림

getContent

protected final AbstractDocument.Content  getContent()
문서의 내용을 가져옵니다.

반환값:
컨텐츠

createLeafElement

protected Element  createLeafElement(Element  parent,
                                    AttributeSet  a,
                                    int p0,
                                    int p1)
문서의 잎의 요소를 작성합니다. 문서의 구조를 나타내기 위해서(때문에) 작성되는 요소의 훅입니다. 이 구현이 구조와 내용을 분리한 채로에 유지하므로, 내용의 확대에 응해 요소가 자동적으로 성장해, 게다가 기존의 요소의 분기 (가지)가 계속됩니다. 사용되는 요소의 형태에 유연성을 주도록(듯이) 요소를 생성하는 방법에 대해서는, 문서 자체로 결정할 필요가 있습니다.

파라미터:
parent - 친요소
a - 요소의 속성
p0 - 범위의 시점 >>= 0
p1 - 범위의 종점 >>= p0
반환값:
신규 요소

createBranchElement

protected Element  createBranchElement(Element  parent,
                                      AttributeSet  a)
문서의 가지의 요소를 작성합니다. 이 요소에는, 다른 요소 (복수가능)를 포함할 수가 있습니다.

파라미터:
parent - 친요소
a - 속성
반환값:
요소

getCurrentWriter

protected final Thread  getCurrentWriter()
현재의 기입 thread가 있으면, 그것을 가져옵니다. 메소드가 기존의 변경의 일부로서 불려 가고 있는지 어떤지, 혹은, 락을 취득해 새로운 트랜잭션(transaction)를 개시할 필요가 있을지 어떨지를 구별하기 위해서 사용할 수 있습니다.

반환값:
문서를 변경하고 있는 액티브한 thread. 진행중의 변경이 없는 경우는 null

writeLock

protected final void writeLock()
락을 취득해, 락이 보호하고 있는 문서의 변경을 개시할 수 있도록(듯이) 합니다. 락의 취득은, 기입해, 변경의 통지, 혹은 read를 하고 있는 동안은 할 수 없습니다. 또, thread는, 문서 통지내로부터 추가의 writeLock 를 취득하려고 하지 않는 한, 복수의 writeLock 를 취득할 수 있습니다. DocumentListener 통지내로부터 writeLock 를 취득하려고 하면(자),IllegalStateException 가 됩니다. thread 마다 복수의 writeLock 를 취득하는 기능에 의해, 서브 클래스는 writeLock 를 취득해, 다수의 조작을 실행하고 나서, 락을 개방할 수 있습니다.

writeLock 의 호출은,writeUnlock 의 호출과 회수가 같지 않으면 안됩니다. 그렇지 않으면Document 가 락 상태대로 되어, read나 기입을 실행할 수 없습니다.

예외:
IllegalStateException - 부정한 락을 시도했을 경우에 throw 된다. 문서가 적절히 구현되고 있으면, 문서 청취자가 문서의 변경을 시도했을 경우에게만 이 예외가 발생한다. 이러한 상황은, Bean 이벤트 모델에 위반하고 있다. 이 이벤트 모델에서는 전달의 순서에 보증은 없고, 변경이 허가되기 전에, 모든 청취자에게 통지될 필요가 있다

writeUnlock

protected final void writeUnlock()
이전 writeLock 경유로 취득된 기입 락을 해제합니다. 락수를 1 개 줄인 뒤, 미처리의 락이 없는 경우는, 새로운 기입측 또는 읽어들여 옆이 허가됩니다.

관련 항목:
writeLock()

readLock

public final void readLock()
락을 취득해, 문서로부터 하등의 상태의 read를 개시할 수 있도록(듯이) 합니다. 복수의 리더를 동시에 존재할 수 있습니다. 청취자에 대한 변경의 통지가 완료할 때까지 기입은 read를 블록 합니다. 문서 락이 잘못해 취득되지 않게, 이 메소드는 주의 깊게 사용할 필요가 있습니다. readLock 메소드와 같은 수만큼,readUnlock 를 호출해 주세요.

관련 항목:
readUnlock()

readUnlock

public final void readUnlock()
읽을 락을 해제합니다. 읽을 1 개(살)이 완료한 것을 통지합니다. 그 밖에 리더가 없으면, 기입을 재개할 수 있습니다. 이 메소드의 호출 회수는, readLock 의 호출 회수와 같게 할 필요가 있으므로, 이것을 보증하기 위해서 finally 문 중(안)에서 사용합니다. 다음에 예를 나타냅니다.

     readLock();
     try {
         // do something
     } finally {
         readUnlock();
     }
 

관련 항목:
readLock()

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