JavaTM Platform
Standard Ed. 6

패키지 javax.swing.plaf.synth

Synth 는, 모든 페인트가 위양 되는 스킨 설정 가능한 Look & Feel 입니다.

참조처:
          설명

인터페이스의 개요
SynthConstants Synth 가 사용하는 정수입니다.
 

클래스의 개요
ColorType 스타일로부터 취득할 수 있는 형태 보증된 색의 열거입니다.
Region Swing 컴퍼넌트의 개별의 draw 영역입니다.
SynthContext Region 에 관한 문맥 의존의 정보를 포함한 불변의 일시 객체입니다.
SynthGraphicsUtils 단순한 도형의 호출을 위한 래퍼입니다.
SynthLookAndFeel SynthLookAndFeel 는, 커스터마이즈 된 Look & Feel 를 작성하기 위한 기초가 되는 클래스입니다.
SynthPainter SynthPainter 는,JComponent 의 일부분을 페인트 할 경우에 사용합니다.
SynthStyle SynthStyle 는, 스타일 프로퍼티세트입니다.
SynthStyleFactory SynthStyle 를 취득하기 위해서 사용하는 팩토리입니다.
 

패키지 javax.swing.plaf.synth 의 설명

Synth 는, 모든 페인트가 위양 되는 스킨 설정 가능한 Look & Feel 입니다. Synth 에는 디폴트의 외관은 없습니다. Synth 를 사용하기 위해서는,파일을 지정하는지,SynthStyleFactory 를 제공할 필요가 있습니다. 어느 쪽의 구성 옵션을 사용하는 경우도, 다음에 설명하는 합성 아키텍쳐(architecture)의 지식과 Swing 의 아키텍쳐(architecture)의 지식이 필요합니다.

특히 지정되어 있지 않은 한, Synth 패키지에 정의된 메소드에 대해서 null 는 유효한 값은 아니기 때문에, null 가 건네받으면(자),NullPointerException 가 throw 됩니다.

Synth

Synth 의 각각의 ComponentUI 구현에서는, 그 자체를 Region 마다 1 개 SynthStyle 와 관련짓습니다. 대부분의 컴퍼넌트는 Region 를 1 개 밖에 가지고 있지 않기 때문에,SynthStyle 도 1 개만됩니다. SynthStyle 는, 스타일에 관련한 프로퍼티 (폰트, 색등의 Component 의 프로퍼티)에 액세스 하기 위해서 사용됩니다. 또,Component 의 백그라운드, 경계, 포커스등의 부분을 페인트 하기 위해서 SynthPainter 를 취득할 때에도 사용됩니다. ComponentUI 는,SynthStyleSynthStyleFactory 로부터 가져옵니다. SynthStyleFactory 는,SynthLookAndFeel.setStyleFactory(javax.swing.plaf.synth.SynthStyleFactory) 를 개입시켜 직접 제공하는 일도,SynthLookAndFeel.load(java.io.InputStream, java.lang.Class) (을)를 개입시켜 간접적으로 제공할 수도 있습니다. 다음의 예에서는,SynthLookAndFeel.load() 메소드를 사용해 SynthLookAndFeel 를 구성해, 그것을 현재의 Look & Feel 로서 설정해 있습니다.

  SynthLookAndFeel laf = new SynthLookAndFeel();
  laf.load(MyClass.class.getResourceAsStream("laf.xml"), MyClass.class);
  UIManager.setLookAndFeel(laf);
      

많은 JComponent 는 작게 분할되어Region 내의 형태 보증된 열거에 의해 식별됩니다. 예를 들어,JTabbedPane 은,JTabbedPane 용의 Region (Region.TABBED_PANE ), 컨텐츠 영역 (Region.TABBED_PANE_CONTENT ), 탭의 배후에 있는 영역 (Region.TABBED_PANE_TAB_AREA ), 및 탭 (Region.TABBED_PANE_TAB )으로부터 구성됩니다. 각 JComponent 의 각 Region 에는 SynthStyle 가 1 개씩 있습니다. 이것에 의해, 각 JComponent 의 각 영역의 개개의 부분을 커스터마이즈 할 수 있습니다.

많은 Synth 메소드는 SynthContext 를 취합니다. 이것은, 현재의 Component 에 관한 정보를 제공하기 위해서 사용되어 현재 Region 에 관련지을 수 있었던 SynthStyle ,Component 상태를 나타내는 비트 마스크 (유효한 상태에 대해서는,SynthConstants 를 참조), 페인트 되는 Component 의 부분을 식별하는 Region 등이 포함되어 있습니다.

JTextComponent 이외에 밤텍스트의 렌더링은 모두,SynthGraphicsUtils 에 위양 됩니다. 이것은,SynthStyle 메소드 SynthStyle.getGraphicsUtils(javax.swing.plaf.synth.SynthContext) 를 사용해 취득됩니다. 텍스트 렌더링을 커스터마이즈 하는 경우는, 독자적인 SynthGraphicsUtils 를 지정합니다.

각 컴퍼넌트의 주의 사항

JTree

Synth 는, 트리의 셀용의 영역 Region.TREE_CELL 를 제공합니다. 렌더링의 색을 지정하려면 ,TREE_CELL 영역에 스타일을 제공합니다. 다음에, 이 예를 나타냅니다.

  <style id="treeCellStyle">
    <opaque value="TRUE"/>
    <state>
      <color value="WHITE" type="TEXT_FOREGROUND"/>
      <color value="RED" type="TEXT_BACKGROUND"/>
    </state>
    <state value="SELECTED">
      <color value="RED" type="TEXT_FOREGROUND"/>
      <color value="WHITE" type="BACKGROUND"/>
    </state>
  </style>
  <bind style="treeCellStyle" type="region" key="TreeCell"/>

이 예에서는, 선택되고 있을 때는 흰 바탕에 빨강, 선택되어 있지 않을 때는 붉은 바탕에 흰색의 색의 편성을 지정하고 있습니다. 백그라운드를 표시하려면 , 라벨을 투명하게 할 필요가 있습니다. 이 때문에는, 다음의 XML (발췌)를 사용합니다.

  <style id="labelStyle">
    <opaque value="FALSE"/>
  </style>
  <bind style="labelStyle" type="region" key="Label"/>

JList 와 JTable

JList 와 JTable 의 렌더링으로 사용하는 색은, 리스트 영역과 테이블 영역을 사용해 지정합니다. 다음의 XML (발췌)는, 선택되고 있을 때는 흰 바탕에 빨강, 선택되어 있지 않을 때는 붉은 바탕에 흰색의 색을 지정하는 방법을 나타내고 있습니다.

  <style id="style">
    <opaque value="TRUE"/>
    <state>
      <color value="WHITE" type="TEXT_FOREGROUND"/>
      <color value="RED" type="TEXT_BACKGROUND"/>
      <color value="RED" type="BACKGROUND"/>
    </state>
    <state value="SELECTED">
      <color value="RED" type="TEXT_FOREGROUND"/>
      <color value="WHITE" type="TEXT_BACKGROUND"/>
    </state>
  </style>
  <bind style="style" type="region" key="Table"/>
  <bind style="style" type="region" key="List"/>


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