|
JavaTM Platform Standard Ed. 6 |
|||||||||
전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요 : 상자 | 필드 | 생성자 | 메소드 | 상세 : 필드 | 생성자 | 메소드 |
java.lang.Objectjavax.swing.text.AbstractDocument
public abstract class AbstractDocument
문서 인터페이스의 구현이며, 각종의 문서를 구현할 때의 베이스가 됩니다. 이 레벨에서는 정책가 매우 몇 안 되는의로, 거기에 응해 사용이 어려워집니다.
이 클래스는, 문서의 락 기구를 구현합니다. 이 기구에 의해, 복수의 읽어들여 또는 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 ()
데이터의 길이를 돌려줍니다. |
|
|
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 |
필드의 상세 |
---|
protected EventListenerList listenerList
protected static final String BAD_LOCATION
public static final String ParagraphElementName
public static final String ContentElementName
public static final String SectionElementName
public static final String BidiElementName
public static final String ElementNameAttribute
생성자 의 상세 |
---|
protected AbstractDocument(AbstractDocument.Content data)
AbstractDocument
를 구축합니다.
data
- 컨텐츠protected AbstractDocument(AbstractDocument.Content data, AbstractDocument.AttributeContext context)
AbstractDocument
를 구축합니다.
data
- 컨텐츠context
- 속성의 문맥메소드의 상세 |
---|
public Dictionary <Object ,Object > getDocumentProperties()
documentProperties
의 사전을 사용해, 문서 전체에 관한 프로퍼티의 주석을 부가할 수 있습니다.
null
이외의 Dictionary
setDocumentProperties(java.util.Dictionary)
public void setDocumentProperties(Dictionary <Object ,Object > x)
x
- 신규 사전getDocumentProperties()
protected void fireInsertUpdate(DocumentEvent e)
e
- 이벤트EventListenerList
protected void fireChangedUpdate(DocumentEvent e)
e
- 이벤트EventListenerList
protected void fireRemoveUpdate(DocumentEvent e)
e
- 이벤트EventListenerList
protected void fireUndoableEditUpdate(UndoableEditEvent e)
e
- 이벤트EventListenerList
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
- listenerType
가
java.util.EventListener
를 구현하는 클래스 또는
인터페이스를 지정하지 않는 경우getDocumentListeners()
,
getUndoableEditListeners()
public int getAsynchronousLoadPriority()
-1
public void setAsynchronousLoadPriority(int p)
p
- 새로운 비동기 로드의 우선 순위.
0 보다 작은 값의 경우,
문서는 비동기에 로드 되지 않는다public void setDocumentFilter(DocumentFilter filter)
DocumentFilter
를 설정합니다. DocumentFilter
가 insert
와 remove
에게 건네져 조건부로 텍스트의 삽입이나 삭제가 가능하게 됩니다. null
치는, 필터가 실행되지 않는 것을 나타냅니다.
filter
- 텍스트의 제약에 사용되는 DocumentFilter
getDocumentFilter()
public DocumentFilter getDocumentFilter()
DocumentFilter
를 돌려줍니다. 반환값 null
는, 필터가 실행되지 않는 것을 나타냅니다.
setDocumentFilter(javax.swing.text.DocumentFilter)
public void render(Runnable r)
이 구현은, 실행하고 있는 동안, read 락을 취득하기 위한의 것입니다. 복수를 동시에 실행하고 있는 경우, 액티브하게 draw중의 객체가 있는 동안은, 모든 기입이 블록 됩니다. 객체가 예외를 throw 했을 경우, 그 락은 안전하게 해제됩니다. 결코 종료하지 않는 객체에 대한 보호는 없고, 사실상, 문서는 자신이 존재하는 동안 쭉 락 됩니다.
지정된 객체가 어떠한 변경을 시도해도, 데드락이 발생합니다. 이 상황을 검지할 수 있도록(듯이) 하기 위해서 개개의 draw thread를 추적할 수 없습니다. 또, 서브 클래스는, draw thread의 추적, 및 에러의 throw의 오버헤드를 발생시킬 가능성이 있습니다.
이 메소드는 thread에 대해서 안전합니다만, 대부분의 Swing 메소드는 다릅니다. 자세한 것은,「How to Use Threads」를 참조해 주세요.
Document
내의 render
r
- 실행하는 렌더링public int getLength()
Document
내의 getLength
Document.getLength()
public void addDocumentListener(DocumentListener listener)
Document
내의 addDocumentListener
listener
- 추가하는 DocumentListener
Document.addDocumentListener(javax.swing.event.DocumentListener)
public void removeDocumentListener(DocumentListener listener)
Document
내의 removeDocumentListener
listener
- 삭제하는 DocumentListener
Document.removeDocumentListener(javax.swing.event.DocumentListener)
public DocumentListener [] getDocumentListeners()
DocumentListener
.
문서 청취자가 현재 등록되지 않은 경우는
빈 상태(empty)의 배열addDocumentListener(javax.swing.event.DocumentListener)
,
removeDocumentListener(javax.swing.event.DocumentListener)
public void addUndoableEditListener(UndoableEditListener listener)
UndoableEdit
로 실행되는 「바탕으로 되돌리는/재실행」조작은, 적절한 DocumetnEvent 를 발생시켜, 뷰 (복수의 경우도 있어)를 모델과 동기 시킵니다.
Document
내의 addUndoableEditListener
listener
- 추가하는 UndoableEditListener
Document.addUndoableEditListener(javax.swing.event.UndoableEditListener)
public void removeUndoableEditListener(UndoableEditListener listener)
Document
내의 removeUndoableEditListener
listener
- 삭제하는 UndoableEditListener
Document.removeDocumentListener(javax.swing.event.DocumentListener)
public UndoableEditListener [] getUndoableEditListeners()
UndoableEditListener
.
취소 가능 편집 청취자가 현재 등록되지 않은 경우는
빈 상태(empty)의 배열addUndoableEditListener(javax.swing.event.UndoableEditListener)
,
removeUndoableEditListener(javax.swing.event.UndoableEditListener)
public final Object getProperty(Object key)
getDocumentProperties(). get(key);
Document
내의 getProperty
key
- null
이외의 프로퍼티 키
null
getDocumentProperties()
public final void putProperty(Object key, Object value)
getDocumentProperties(). put(key, value);
value
가 null
의 경우, 이 메소드는 프로퍼티을 삭제합니다.
Document
내의 putProperty
key
- null
이외의 키value
- 프로퍼티의 값getDocumentProperties()
public void remove(int offs, int len) throws BadLocationException
이 메소드는 thread에 대해서 안전합니다만, 대부분의 Swing 메소드는 다릅니다. 자세한 것은,「How to Use Threads」를 참조해 주세요.
Document
내의 remove
offs
- 개시 오프셋(offset) >= 0len
- 삭제 대상의 문자수 >= 0
BadLocationException
- 지정된 삭제 위치가
문서내의 유효한 위치가 아닌 경우Document.remove(int, int)
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
- 지정된 위치가
문서내의 유효한 위치가 아닌 경우public void insertString(int offs, String str, AttributeSet a) throws BadLocationException
이 메소드는 thread에 대해서 안전합니다만, 대부분의 Swing 메소드는 다릅니다. 자세한 것은,「How to Use Threads」를 참조해 주세요.
Document
내의 insertString
offs
- 개시 오프셋(offset) >= 0str
- 삽입하는 캐릭터 라인. null 나 빈 상태(empty)의 캐릭터 라인의 경우는 아무것도 하지 않는a
- 삽입된 컨텐츠의 속성
BadLocationException
- 지정된 삽입 위치가
문서내의 유효한 위치가 아닌 경우Document.insertString(int, java.lang.String, javax.swing.text.AttributeSet)
public String getText(int offset, int length) throws BadLocationException
Document
내의 getText
offset
- 개시 오프셋(offset) >= 0length
- 검색 대상의 문자수 >= 0
BadLocationException
- 지정된 범위에, 문서내의
무효인 위치가 포함되는 경우Document.getText(int, int)
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) >= 0length
- 검색 대상의 문자수 >= 0txt
- 텍스트를 취득하는 Segment 객체
BadLocationException
- 지정된 범위에, 문서내의
무효인 위치가 포함되는 경우public Position createPosition(int offs) throws BadLocationException
이 메소드는 thread에 대해서 안전합니다만, 대부분의 Swing 메소드는 다릅니다. 자세한 것은,「How to Use Threads」를 참조해 주세요.
Document
내의 createPosition
offs
- 모델내의 위치 >= 0
BadLocationException
- 지정된 위치가, 관련지을 수 있었던 문서내의
유효한 위치를 나타내지 않는 경우Document.createPosition(int)
public final Position getStartPosition()
Document
내의 getStartPosition
public final Position getEndPosition()
Document
내의 getEndPosition
public Element [] getRootElements()
Document
내의 getRootElements
public abstract Element getDefaultRootElement()
Document
내의 getDefaultRootElement
Document.getDefaultRootElement()
public Element getBidiRootElement()
public abstract Element getParagraphElement(int pos)
pos
- 개시 오프셋(offset) >= 0
protected final AbstractDocument.AttributeContext getAttributeContext()
protected void insertUpdate(AbstractDocument.DefaultDocumentEvent chng, AttributeSet attr)
chng
- 변경의 설명attr
- 변경의 속성protected void removeUpdate(AbstractDocument.DefaultDocumentEvent chng)
chng
- 변경의 설명protected void postRemoveUpdate(AbstractDocument.DefaultDocumentEvent chng)
chng
- 변경의 설명public void dump(PrintStream out)
out
- 출력 스트림protected final AbstractDocument.Content getContent()
protected Element createLeafElement(Element parent, AttributeSet a, int p0, int p1)
parent
- 친요소a
- 요소의 속성p0
- 범위의 시점 >>= 0p1
- 범위의 종점 >>= p0
protected Element createBranchElement(Element parent, AttributeSet a)
parent
- 친요소a
- 속성
protected final Thread getCurrentWriter()
null
protected final void writeLock()
writeLock
를 취득하려고 하지 않는 한, 복수의 writeLock
를 취득할 수 있습니다. DocumentListener 통지내로부터 writeLock
를 취득하려고 하면(자),IllegalStateException
가 됩니다. thread 마다 복수의 writeLock
를 취득하는 기능에 의해, 서브 클래스는 writeLock 를 취득해, 다수의 조작을 실행하고 나서, 락을 개방할 수 있습니다.
writeLock
의 호출은,writeUnlock
의 호출과 회수가 같지 않으면 안됩니다. 그렇지 않으면Document
가 락 상태대로 되어, read나 기입을 실행할 수 없습니다.
IllegalStateException
- 부정한 락을 시도했을 경우에 throw 된다.
문서가 적절히 구현되고 있으면, 문서 청취자가 문서의 변경을 시도했을 경우에게만
이 예외가 발생한다.
이러한 상황은, Bean 이벤트 모델에 위반하고 있다.
이 이벤트 모델에서는 전달의 순서에 보증은 없고, 변경이 허가되기 전에,
모든 청취자에게 통지될 필요가 있다protected final void writeUnlock()
writeLock
경유로 취득된 기입 락을 해제합니다. 락수를 1 개 줄인 뒤, 미처리의 락이 없는 경우는, 새로운 기입측 또는 읽어들여 옆이 허가됩니다.
writeLock()
public final void readLock()
readUnlock
를 호출해 주세요.
readUnlock()
public final void readUnlock()
readLock();
try {
// do something
} finally {
readUnlock();
}
readLock()
|
JavaTM Platform Standard Ed. 6 |
|||||||||
전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요 : 상자 | 필드 | 생성자 | 메소드 | 상세 : 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.