JavaTM Platform
Standard Ed. 6

javax.swing.text.html
클래스 StyleSheet

java.lang.Object 
  상위를 확장 javax.swing.text.StyleContext 
      상위를 확장 javax.swing.text.html.StyleSheet
모든 구현된 인터페이스:
Serializable , AbstractDocument.AttributeContext


public class StyleSheet
extends StyleContext

draw 되는 HTML 뷰의 시각적인 특성의 정의를 지원합니다. StyleSheet 는, HTML 모델을 시각적인 특성으로 변환하기 위해서(때문에) 사용됩니다. 이것을 사용해, 표시의 Look & Feel 를 커스터마이즈 하거나 같은 모델에 의한 복수의 뷰를 각각 다른 형태로 draw 하거나 할 수 있습니다. 이것은 CSS 규칙 리포지터리(repository)라고 생각할 수가 있습니다. CSS 속성의 키는 CSS.Attribute 형의 객체입니다. 값의 형태는 StyleSheet 의 구현에 응해 다릅니다. 다만, CSS 치를 캐릭터 라인 표현으로 돌려주려면 toString 메소드가 필요합니다.

HTML 의 View 의 구현으로 속성을 취득하기 위한 주요한 엔트리 포인트는 getViewAttributes 메소드입니다. 이것은, 속성과 뷰의 관련지어에 필요한 정책를 확립하기 위해서 구현할 필요가 있습니다. 각 HTMLEditorKit (또 관련하는 각 JEditorPane)는, 전용의 StyleSheet 를 가질 수가 있습니다만, 디폴트에서는 모든 HTMLEditorKit 의 인스턴스가 1 개의 시트를 공유합니다. HTMLDocument 의 인스턴스는, 특정의 문서용의 CSS 지정이 기술된 StyleSheet 를 가질 수도 있습니다.

View 가 포함하는 상태를 줄여, 태스크를 가볍게 하기 위해서, StyleSheet 는 일부의 draw 태스크를 처리하는 페인타의 팩토리로서 동작할 수 있습니다. 이것에 의해, 구현은 무엇을 캐쉬하는지, 1 개의 셀렉터가 복수의 뷰에 공통되는 레벨로 무엇을 공유할까를 결정하는 것이 가능하게 됩니다. StyleSheet 는 복수의 문서의 표시로 사용되어 HTML 속성은, 사용되는 셀렉터에는 일반적으로 영향을 주지 않습니다. 이 때문에, 공유의 가능성이 크게 퍼집니다.

규칙은 이름 첨부 스타일로서 보존되어 요소의 문맥으로부터 규칙에 재빠르게 변환하기 위해서 그 외의 정보가 보존됩니다. 다음에 나타내는 코드예는, 이름 첨부 스타일 (따라 CSS 규칙을 포함한다)을 표시합니다.

   
   import java.util. *;
   import javax.swing.text. *;
   import javax.swing.text.html. *;
   
   public class ShowStyles {
   
       public static void main(String[] args) {
           HTMLEditorKit kit = new HTMLEditorKit();
           HTMLDocument doc = (HTMLDocument) kit.createDefaultDocument();
           StyleSheet styles = doc.getStyleSheet();
           
           Enumeration rules = styles.getStyleNames();
           while (rules.hasMoreElements()) {
               String name = (String) rules.nextElement();
               Style rule = styles.getStyle(name);
               System.out.println(rule.toString());
           }
           System.exit(0);
       }
   }
   
 

요소에 의해 정의된 시각적인 속성을 CSS 스타일이 오버라이드(override) 하는 경우의 시멘틱스는, 충분히 정의되고 있지 않습니다. 예를 들어, HTML <body bgcolor=red> 는 본체의 백그라운드를 빨강으로 합니다. 그러나 HTML 파일에 body { background: blue } 라고 하는 CSS 규칙도 있는 경우, 본체의 백그라운드를 무슨색으로 하는지, 불명확이 됩니다. 현재의 구현은, 요소로 정의된 시각적인 속성을 최우선 합니다. 즉, 그러한 속성은 항상 스타일보다 먼저 확인됩니다. 따라서 상기의 예에서는, 본체 요소가 백그라운드 칼라를 빨강에 정의하고 있기 (위해)때문에, 백그라운드는 빨강이 됩니다.

벌써 말한 것처럼, 이 메소드는 CSS 를 지원합니다. CSS 스펙의 모든 것을 지원하고 있는 것은 아닙니다. 어느 프로퍼티을 지원하고 있을까에 대해서는, CSS 클래스의 javadoc 를 참조해 주세요. 현재로서는 지원하고 있지 않는 개념에 관련하는 주요한 CSS 해석은,A:link { color:red } 등의 의사 셀렉터와important 수식자의 2 개입니다.

주:이 구현은, 현재 상태로서는 불완전합니다. 장래, 대체의 구현에 의해 옮겨놓을 수 있을 가능성이 있습니다. 이 클래스의 향후의 버젼에서는, 보다 뛰어난 CSS 지원가 제공될 예정입니다.


상자의 클래스의 개요
static class StyleSheet.BoxPainter
          CSS 의 서식 설정 처리의 일부를 실행하는 클래스입니다.
static class StyleSheet.ListPainter
          CSS 리스트의 서식 설정 처리의 일부를 실행하는 클래스입니다.
 
클래스 javax.swing.text. StyleContext 로부터 상속된 상자의 클래스/인터페이스
StyleContext.NamedStyle , StyleContext.SmallAttributeSet
 
필드의 개요
 
클래스 javax.swing.text. StyleContext 로부터 상속된 필드
DEFAULT_STYLE
 
생성자 의 개요
StyleSheet ()
          StyleSheet 를 구축합니다.
 
메소드의 개요
 AttributeSet addAttribute (AttributeSet  old, Object  key, Object  value)
          지정된 세트에 속성을 추가해, 그 새로운 세트를 돌려줍니다.
 AttributeSet addAttributes (AttributeSet  old, AttributeSet  attr)
          속성 세트를 요소에 추가합니다.
 void addCSSAttribute (MutableAttributeSet  attr, CSS.Attribute  key, String  value)
          지정된 세트에 CSS 속성을 추가합니다.
 boolean addCSSAttributeFromHTML (MutableAttributeSet  attr, CSS.Attribute  key, String  value)
          지정된 세트에 CSS 속성을 추가합니다.
 void addRule (String  rule)
          규칙 세트를 시트에 등록합니다.
 void addStyleSheet (StyleSheet  ss)
          StyleSheet ss 의 규칙을, 리시버의 규칙에 등록합니다.
protected  MutableAttributeSet createLargeAttributeSet (AttributeSet  a)
          메모리 효율보다 처리 시간을 우선하는, 큰 사이즈의 속성 세트를 작성합니다.
protected  StyleContext.SmallAttributeSet createSmallAttributeSet (AttributeSet  a)
          공유 가능하고 컴팩트한 속성 세트를 작성합니다.
 Color getBackground (AttributeSet  a)
          속성 세트를 취득해 백그라운드 칼라 지정으로 변환합니다.
 URL getBase ()
          베이스를 돌려줍니다.
 StyleSheet.BoxPainter getBoxPainter (AttributeSet  a)
          지정된 CSS 속성세트로 사용하는 박스 포매터를 가져옵니다.
 AttributeSet getDeclaration (String  decl)
          CSS 선언을, CSS 선언을 나타내는 속성 세트로 변환합니다.
 Font getFont (AttributeSet  a)
          지정된 속성 세트로 사용하는 폰트를 가져옵니다.
 Color getForeground (AttributeSet  a)
          속성 세트를 취득해 foreground 칼라 지정으로 변환합니다.
static int getIndexOfSize (float pt)
           
 StyleSheet.ListPainter getListPainter (AttributeSet  a)
          지정된 CSS 속성세트로 사용하는 리스트 포매터를 가져옵니다.
 float getPointSize (int index)
          지정된 사이즈 인덱스의 포인트 사이즈를 돌려줍니다.
 float getPointSize (String  size)
           「+2」, 「-2」, 「2」등의 지정된 캐릭터 라인의 포인트 사이즈치를 돌려줍니다.
 Style getRule (HTML.Tag  t, Element  e)
          지정된 타입의 HTML 태그를 draw 하기 위해서 사용하는 스타일을 가져옵니다.
 Style getRule (String  selector)
          캐릭터 라인 형식에서 지정된 셀렉터에 가장 일치하는 규칙을 꺼냅니다.
 StyleSheet [] getStyleSheets ()
          링크된 StyleSheet 의 배열을 돌려줍니다.
 AttributeSet getViewAttributes (View  v)
          표시를 위해서(때문에) 뷰로 사용되는 속성 세트를 가져옵니다.
 void importStyleSheet (URL  url)
          url 로부터 스타일 시트를 임포트 합니다.
 void loadRules (Reader  in, URL  ref)
          CSS1 문법이 지정하는 규칙 세트를 로드합니다.
 AttributeSet removeAttribute (AttributeSet  old, Object  key)
          세트로부터 속성을 삭제합니다.
 AttributeSet removeAttributes (AttributeSet  old, AttributeSet  attrs)
          속성 세트를 삭제합니다.
 AttributeSet removeAttributes (AttributeSet  old, Enumeration <? > names)
          요소의 속성 세트를 삭제합니다.
 void removeStyle (String  nm)
          이전에 문서에 추가된 이름 첨부 서식을 삭제합니다.
 void removeStyleSheet (StyleSheet  ss)
          리시버의 StyleSheet ss 로부터 StyleSheet ss 를 삭제합니다.
 void setBase (URL  base)
          베이스를 설정합니다.
 void setBaseFontSize (int sz)
          1 ~ 7 의 유효한 값으로, 베이스 font size를 설정합니다.
 void setBaseFontSize (String  size)
          건네받은 String 로부터 베이스 font size를 설정합니다.
 Color stringToColor (String  string)
           「RED」또는 「#NNNNNN」등의 연애 편지자열을 Color 로 변환합니다.
 AttributeSet translateHTMLToCSS (AttributeSet  htmlAttrSet)
          HTML 속성세트를, 동등의 CSS 속성세트로 변환합니다.
 
클래스 javax.swing.text. StyleContext 로부터 상속된 메소드
addChangeListener , addStyle , getChangeListeners , getCompressionThreshold , getDefaultStyleContext , getEmptySet , getFont , getFontMetrics , getStaticAttribute , getStaticAttributeKey , getStyle , getStyleNames , readAttributes , readAttributeSet , reclaim , registerStaticAttributeKey , removeChangeListener , toString , writeAttributes , writeAttributeSet
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , wait , wait , wait
 

생성자 의 상세

StyleSheet

public StyleSheet()
StyleSheet 를 구축합니다.

메소드의 상세

getRule

public Style  getRule(HTML.Tag  t,
                     Element  e)
지정된 타입의 HTML 태그를 draw 하기 위해서 사용하는 스타일을 가져옵니다. 요소는, 태그를 나타내는 것 만이 아니고, 속성이 다른 경우에 상자 처리의 판정에 사용할 수가 있습니다 (요소내에서의 상자 처리의 경우).

파라미터:
t - 시각적인 속성으로 변환하는 형태
e - 태그를 나타내는 요소. 요소는, 속성이 다른 경우에 상자 처리의 판정에 사용할 수가 있다 (다른 요소내에서의 상자 처리의 경우)
반환값:
태그를 draw 하기 위한(해) 2 사용하는 CSS 속성의 세트

getRule

public Style  getRule(String  selector)
캐릭터 라인 형식에서 지정된 셀렉터에 가장 일치하는 규칙을 꺼냅니다. selector 는, 공백에서 단락지어진 요소명의 String 입니다. 예를 들어 html body tr td 등입니다.

반환되는 Style 의 속성은, 규칙이 추가되거나 삭제 되거나 한다고 변경됩니다. 즉, 셀렉터 table p 를 가지는 규칙을 요구하는 경우, p 라고 하는 셀렉터를 가지는 새로운 규칙이 추가되고 있으면(자), 반환되는 Style 에는 규칙 p 로부터의 새로운 속성이 포함된다고 하는 것입니다.


addRule

public void addRule(String  rule)
규칙 세트를 시트에 등록합니다. 규칙은 유효한 CSS 형식이라고 상정됩니다. 일반적으로은, 이것은 <style> 태그의 해석의 결과로서 불려 갑니다.


getDeclaration

public AttributeSet  getDeclaration(String  decl)
CSS 선언을, CSS 선언을 나타내는 속성 세트로 변환합니다. 일반적으로은, 이것은 HTML 스타일 속성이 검출된 결과적으로 불려 갑니다.


loadRules

public void loadRules(Reader  in,
                      URL  ref)
               throws IOException 
CSS1 문법이 지정하는 규칙 세트를 로드합니다. 기존의 규칙과 경합 하는 경우는, 새롭게 지정되는 규칙이 우선합니다.

파라미터:
in - CSS 문법의 읽기원스트림
ref - 참조 URL. 이 값은 스트림의 위치를 나타내, null 의 경우가 있다. 스트림내에서 지정되는 관련 URL 는 모두 이 파라미터에 근거한다
예외:
IOException

getViewAttributes

public AttributeSet  getViewAttributes(View  v)
표시를 위해서(때문에) 뷰로 사용되는 속성 세트를 가져옵니다. 기본적으로는 View.getAttributes 로 사용 가능한 속성세트입니다.


removeStyle

public void removeStyle(String  nm)
이전에 문서에 추가된 이름 첨부 서식을 삭제합니다.

오버라이드(override):
클래스 StyleContext 내의 removeStyle
파라미터:
nm - 삭제되는 서식의 이름

addStyleSheet

public void addStyleSheet(StyleSheet  ss)
StyleSheet ss 의 규칙을, 리시버의 규칙에 등록합니다. ss 의 규칙은, 벌써 등록되어 있는 스타일 시트의 규칙을 오버라이드(override) 합니다. 등록되어 있는 StyleSheet 가 새롭게 받는 스타일 시트의 규칙을 오버라이드(override) 할 것은 없습니다.

도입된 버젼:
1.3

removeStyleSheet

public void removeStyleSheet(StyleSheet  ss)
리시버의 StyleSheet ss 로부터 StyleSheet ss 를 삭제합니다.

도입된 버젼:
1.3

getStyleSheets

public StyleSheet [] getStyleSheets()
링크된 StyleSheet 의 배열을 돌려줍니다. 링크된 StyleSheet 가 없는 경우는 null 를 돌려줍니다.

도입된 버젼:
1.3

importStyleSheet

public void importStyleSheet(URL  url)
url 로부터 스타일 시트를 임포트 합니다. 결과적으로 얻을 수 있는 규칙은 리시버에 직접 등록됩니다. 규칙을 리시버의 일부로 하고 싶지 않은 경우는, 새로운 StyleSheet 를 작성해 addStyleSheet 사용해 그 StyleSheet 를 링크시킵니다.

도입된 버젼:
1.3

setBase

public void setBase(URL  base)
베이스를 설정합니다. 상관관계가 있는 import 문은 모두,base 에 관련합니다.

도입된 버젼:
1.3

getBase

public URL  getBase()
베이스를 돌려줍니다.

도입된 버젼:
1.3

addCSSAttribute

public void addCSSAttribute(MutableAttributeSet  attr,
                            CSS.Attribute  key,
                            String  value)
지정된 세트에 CSS 속성을 추가합니다.

도입된 버젼:
1.3

addCSSAttributeFromHTML

public boolean addCSSAttributeFromHTML(MutableAttributeSet  attr,
                                       CSS.Attribute  key,
                                       String  value)
지정된 세트에 CSS 속성을 추가합니다.

도입된 버젼:
1.3

translateHTMLToCSS

public AttributeSet  translateHTMLToCSS(AttributeSet  htmlAttrSet)
HTML 속성세트를, 동등의 CSS 속성세트로 변환합니다.

파라미터:
htmlAttrSet - HTML 속성을 포함한 AttributeSet

addAttribute

public AttributeSet  addAttribute(AttributeSet  old,
                                 Object  key,
                                 Object  value)
지정된 세트에 속성을 추가해, 그 새로운 세트를 돌려줍니다. 슈퍼 클래스의 동작에 전송 하기 전에, StyleConstant 속성을 CSS 로 변환하기 위해서(때문에) 다시 구현합니다. StyleConstants 속성에는, StyleConstants 속성이 포함되는 (다만 사용될 것 같지 않다), 대응하는 CSS 엔트리가 없습니다.

정의:
인터페이스 AbstractDocument.AttributeContext 내의 addAttribute
오버라이드(override):
클래스 StyleContext 내의 addAttribute
파라미터:
old - 구속성 세트
key - null 이외의 속성 키
value - 속성치
반환값:
갱신 속성 세트
관련 항목:
MutableAttributeSet.addAttribute(java.lang.Object, java.lang.Object)

addAttributes

public AttributeSet  addAttributes(AttributeSet  old,
                                  AttributeSet  attr)
속성 세트를 요소에 추가합니다. 속성의 어떤 것인가가 StyleConstants 속성의 경우, 그 속성은 슈퍼 클래스의 동작에 전송 되기 전에 CSS 에 변환됩니다.

정의:
인터페이스 AbstractDocument.AttributeContext 내의 addAttributes
오버라이드(override):
클래스 StyleContext 내의 addAttributes
파라미터:
old - 구속성 세트
attr - 추가하는 속성
반환값:
갱신 속성 세트
관련 항목:
MutableAttributeSet.addAttribute(java.lang.Object, java.lang.Object)

removeAttribute

public AttributeSet  removeAttribute(AttributeSet  old,
                                    Object  key)
세트로부터 속성을 삭제합니다. 그 속성이 StyleConstants 속성의 경우, 요구는 슈퍼 클래스의 동작에 전송 되기 전에 CSS 속성에 변환됩니다.

정의:
인터페이스 AbstractDocument.AttributeContext 내의 removeAttribute
오버라이드(override):
클래스 StyleContext 내의 removeAttribute
파라미터:
old - 구속성 세트
key - null 이외의 속성명
반환값:
갱신 속성 세트
관련 항목:
MutableAttributeSet.removeAttribute(java.lang.Object)

removeAttributes

public AttributeSet  removeAttributes(AttributeSet  old,
                                     Enumeration <? > names)
요소의 속성 세트를 삭제합니다. 속성의 어떤 것인가가 StyleConstants 속성의 경우, 요구는 슈퍼 클래스의 동작에 전송 되기 전에 CSS 속성에 변환됩니다.

정의:
인터페이스 AbstractDocument.AttributeContext 내의 removeAttributes
오버라이드(override):
클래스 StyleContext 내의 removeAttributes
파라미터:
old - 구속성 세트
names - 속성명
반환값:
갱신 속성 세트
관련 항목:
MutableAttributeSet.removeAttributes(java.util.Enumeration)

removeAttributes

public AttributeSet  removeAttributes(AttributeSet  old,
                                     AttributeSet  attrs)
속성 세트를 삭제합니다. 속성의 어떤 것인가가 StyleConstants 속성의 경우, 요구는 슈퍼 클래스의 동작에 전송 되기 전에 CSS 속성에 변환됩니다.

정의:
인터페이스 AbstractDocument.AttributeContext 내의 removeAttributes
오버라이드(override):
클래스 StyleContext 내의 removeAttributes
파라미터:
old - 구속성 세트
attrs - 속성
반환값:
갱신 속성 세트
관련 항목:
MutableAttributeSet.removeAttributes(java.util.Enumeration)

createSmallAttributeSet

protected StyleContext.SmallAttributeSet  createSmallAttributeSet(AttributeSet  a)
공유 가능하고 컴팩트한 속성 세트를 작성합니다. 이것은, 서브 클래스에서 SmallAttributeSet 의 동작을 변경하고 싶은 경우에, 서브 클래스에서 이용하기 위한 훅입니다. 이 메소드는, 속성 변환을 제공하는 AttributeSet 를 돌려주기 위해서(때문에), 다시 구현할 수도 있습니다.

오버라이드(override):
클래스 StyleContext 내의 createSmallAttributeSet
파라미터:
a - 컴팩트한 형식에서 표현된다 속성 세트

createLargeAttributeSet

protected MutableAttributeSet  createLargeAttributeSet(AttributeSet  a)
메모리 효율보다 처리 시간을 우선하는, 큰 사이즈의 속성 세트를 작성합니다. 일반적으로, 이 세트의 공유는 곤란합니다. 이것은, 큰 사이즈의 속성 포함 형식 (디폴트에서는 SimpleAttributeSet)의 동작을 서브 클래스에서 변경할 필요가 있는 경우에, 서브 클래스에서 이용하기 위한 훅입니다. 이 메소드는, 속성 변환을 제공하는 MutableAttributeSet 를 돌려주기 위해서(때문에), 다시 구현할 수도 있습니다.

오버라이드(override):
클래스 StyleContext 내의 createLargeAttributeSet
파라미터:
a - 사이즈의 큰 형식에서 표현된다 속성 세트

getFont

public Font  getFont(AttributeSet  a)
지정된 속성 세트로 사용하는 폰트를 가져옵니다.

오버라이드(override):
클래스 StyleContext 내의 getFont
파라미터:
a - 속성 세트
반환값:
폰트

getForeground

public Color  getForeground(AttributeSet  a)
속성 세트를 취득해 foreground 칼라 지정으로 변환합니다. 밝음이나 색조등을 강조하는 경우에 사용합니다.

오버라이드(override):
클래스 StyleContext 내의 getForeground
파라미터:
a - 속성 세트
반환값:

getBackground

public Color  getBackground(AttributeSet  a)
속성 세트를 취득해 백그라운드 칼라 지정으로 변환합니다. 밝음이나 색조등을 강조하는 경우에 사용합니다.

오버라이드(override):
클래스 StyleContext 내의 getBackground
파라미터:
a - 속성 세트
반환값:

getBoxPainter

public StyleSheet.BoxPainter  getBoxPainter(AttributeSet  a)
지정된 CSS 속성세트로 사용하는 박스 포매터를 가져옵니다.


getListPainter

public StyleSheet.ListPainter  getListPainter(AttributeSet  a)
지정된 CSS 속성세트로 사용하는 리스트 포매터를 가져옵니다.


setBaseFontSize

public void setBaseFontSize(int sz)
1 ~ 7 의 유효한 값으로, 베이스 font size를 설정합니다.


setBaseFontSize

public void setBaseFontSize(String  size)
건네받은 String 로부터 베이스 font size를 설정합니다. 캐릭터 라인에서는, 1 ~ 7 의 적정한 값으로 특정의 font size를 지정하는지,+1 나 -2 와 같은 상대 font size를 지정할 수 있습니다.


getIndexOfSize

public static int getIndexOfSize(float pt)

getPointSize

public float getPointSize(int index)
지정된 사이즈 인덱스의 포인트 사이즈를 돌려줍니다.


getPointSize

public float getPointSize(String  size)
「+2」, 「-2」, 「2」등의 지정된 캐릭터 라인의 포인트 사이즈치를 돌려줍니다.


stringToColor

public Color  stringToColor(String  string)
「RED」또는 「#NNNNNN」등의 연애 편지자열을 Color 로 변환합니다. 주:HTML3. 2 준거의 연애 편지자열 또는 길이 7 의 캐릭터 라인만을 변환해, 그 이외는 null 를 돌려주는 것에 주의해 주세요.


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