JEditorPane — 편집 창 텍스트 컴포넌트

JEditorPane — 편집 창 텍스트 컴포넌트

JEditorPane은 다양한 종류의 콘텐츠를 편집하는 텍스트 컴포넌트입니다. 콘텐츠 유형에 따라 적절한 텍스트 편집기로 변신합니다.

출처: Java API Reference

본문

public class JEditorPane extends JTextComponent

다양한 종류의 콘텐츠를 편집하는 텍스트 컴포넌트입니다. 사용 방법과 예는 The Java Tutorial의 "Using Text Components" 섹션에서 확인할 수 있습니다. 이 컴포넌트는 EditorKit의 구현을 사용해 동작을 수행합니다. 주어진 콘텐츠 종류에 맞는 적절한 텍스트 편집기로 사실상 변신합니다. 편집기가 특정 시점에 바인딩된 콘텐츠 유형은 현재 설치된 EditorKit에 의해 결정됩니다. 콘텐츠가 새 URL로 설정되면 그 유형을 사용해 콘텐츠를 로드할 EditorKit을 결정합니다. 기본적으로 다음 유형의 콘텐츠가 알려져 있습니다.

  • text/plain — 일반 텍스트. 유형이 인식되지 않을 때의 기본값. 이 경우 사용되는 키트는 줄바꿈된 일반 텍스트 뷰를 만드는 DefaultEditorKit의 확장입니다
  • text/html — HTML 텍스트. 이 경우 사용되는 키트는 HTML 3.2를 지원하는 javax.swing.text.html.HTMLEditorKit 클래스입니다
  • text/rtf — RTF 텍스트. 이 경우 사용되는 키트는 리치 텍스트 포맷을 제한적으로 지원하는 javax.swing.text.rtf.RTFEditorKit 클래스입니다

이 컴포넌트에 콘텐츠를 로드하는 방법은 여러 가지입니다. setText 메서드는 문자열로 컴포넌트를 초기화하는 데 사용할 수 있습니다. 이 경우 현재 EditorKit이 사용되며 콘텐츠 유형도 이 유형일 것으로 기대합니다. read 메서드는 Reader로 컴포넌트를 초기화하는 데 사용할 수 있습니다. 콘텐츠 유형이 HTML이면 태그를 사용하지 않는 한 이미지 같은 상대 참조는 확인할 수 없습니다. setPage 메서드는 URL로 컴포넌트를 초기화하는 데 사용할 수 있습니다. 이 경우 콘텐츠 유형은 URL에서 결정되고, 그 유형에 등록된 EditorKit이 설정됩니다. 일부 콘텐츠는 하이퍼링크 이벤트를 생성해 하이퍼링크 지원을 제공할 수 있습니다. HTML EditorKit은 JEditorPane이 편집 불가능할 때 하이퍼링크 이벤트를 생성합니다. 문화에 의존적인 정보는 문자 인코딩 메커니즘으로 처리됩니다. JEditorPane에서 문자 집합 매핑을 수행하는 방법은 여러 가지가 있습니다. 한 가지는 MIME 유형의 매개변수로 문자 집합을 지정하는 것으로, setContentType 메서드 호출로 설정됩니다. 파일이 사용자 에이전트(JEditorPane)에 전달되면 문서 문자 집합(ISO-10646, Unicode)으로 변환됩니다. 경고: Swing은 스레드에 안전하지 않습니다. 이 클래스의 직렬화된 객체는 향후 Swing 버전과 호환되지 않을 수 있습니다. 현재 직렬화 지원은 단기 저장이나 같은 버전의 Swing을 실행하는 애플리케이션 간 RMI에 적합합니다. 1.4부터 모든 JavaBean의 장기 저장 지원이 java.beans 패키지에 추가되었으니 XMLEncoder를 참고하세요.

W3C_LENGTH_UNITS

public static final String W3C_LENGTH_UNITS

html 렌더링에 w3c 호환 길이 단위를 사용할지 여부를 나타내는 클라이언트 프로퍼티의 키입니다. 기본적으로 활성화되지 않으며, 활성화하려면 이 이름의 클라이언트 프로퍼티를 Boolean.TRUE로 설정하세요.

  • 버전: 1.5

HONOR_DISPLAY_PROPERTIES

public static final String HONOR_DISPLAY_PROPERTIES

포그라운드·배경색, 글꼴 등 데스크톱 표시 프로퍼티를 HTML 문서 렌더링에 사용할지 여부를 나타내는 클라이언트 프로퍼티의 키입니다.

JEditorPane

public JEditorPane()

새 JEditorPane을 만듭니다. 콘텐츠 유형으로 text/plain이 사용됩니다.

JEditorPane

public JEditorPane(String type, String text) throws IOException

지정된 콘텐츠 유형과 텍스트로 새 JEditorPane을 만듭니다.

  • 매개변수: type - 이 편집기에 설정할 MIME 유형
  • 매개변수: text - 초기 텍스트
  • 예외: IOException - 콘텐츠 유형에 대한 편집기를 만들 수 없는 경우

JEditorPane

public JEditorPane(URL initialPage) throws IOException

URL로부터 표시할 초기 페이지를 사용해 새 JEditorPane을 만듭니다.

  • 매개변수: initialPage - 표시할 URL
  • 예외: IOException - 페이지를 로드할 수 없는 경우

JEditorPane

public JEditorPane(String url) throws IOException

지정된 URL로부터 표시할 초기 페이지를 사용해 새 JEditorPane을 만듭니다.

  • 매개변수: url - 표시할 URL
  • 예외: IOException - 페이지를 로드할 수 없는 경우

setText

public void setText(String t)

이 텍스트 컴포넌트의 텍스트를 설정합니다. 카렐이 텍스트 시작으로 이동합니다. 컴포넌트가 표시되면 다시 그려집니다.

  • 재정의: JTextComponent 클래스의 setText
  • 매개변수: t - 새 텍스트

setPage

public void setPage(String url) throws IOException

현재 URL을 표시합니다. 특정 유형의 콘텐츠에 대해 setPage 호출 시 로드될 수 있는 작업이 있습니다.

  • 매개변수: url - 표시할 URL
  • 예외: IOException - URL을 로드할 수 없는 경우

setPage

public void setPage(URL page) throws IOException

현재 URL을 표시합니다. URL의 MIME 유형에서 얻은 편집기를 사용해 콘텐츠를 로드하고 표시합니다.

  • 매개변수: page - 표시할 URL
  • 예외: IOException - URL을 로드할 수 없는 경우

getPage

public URL getPage()

현재 표시되는 URL을 반환하거나, 아무것도 표시되지 않으면 null을 반환합니다.

  • 반환값: 현재 표시되는 URL 또는 null

read

public void read(InputStream in, Object desc) throws IOException

이 컴포넌트의 편집기에서 지원하는 형식으로 스트림의 텍스트를 로드합니다.

  • 매개변수: in - 읽을 입력 스트림
  • 매개변수: desc - 스트림에 대한 설명

getContentType

public final String getContentType()

이 편집기에 설정된 콘텐츠 유형을 반환합니다.

  • 반환값: 현재 콘텐츠 유형

setContentType

@BeanProperty(description="The type of content that this editor handles.") public void setContentType(String type)

이 편집기에서 처리하는 콘텐츠 유형을 설정합니다.

  • 매개변수: type - MIME 유형
  • 예외: NullPointerException - type이 null인 경우

setEditorKit

public void setEditorKit(EditorKit kit)

현재 편집 키트를 설정합니다.

  • 매개변수: kit - 새 편집 키트

getEditorKit

public EditorKit getEditorKit()

현재 편집 키트를 가져옵니다.

  • 반환값: 현재 편집 키트

getEditorKitForContentType

public EditorKit getEditorKitForContentType(String type)

지정된 콘텐츠 유형의 편집 키트를 가져옵니다.

  • 매개변수: type - MIME 콘텐츠 유형
  • 반환값: 지정된 유형의 EditorKit

registerEditorKitForContentType

public void registerEditorKitForContentType(String type, String classname)

지정된 콘텐츠 유형에 대해 클래스 이름으로 편집 키트를 등록합니다.

  • 매개변수: type - 콘텐츠 유형
  • 매개변수: classname - 편집 키트의 클래스 이름

getDocument

public Document getDocument()

이 컴포넌트에 연결된 모델을 가져옵니다.

  • 재정의: JTextComponent 클래스의 getDocument
  • 반환값: 모델

더 알아보기