사용자 정의 위지트(widget)

고유한 사용자 정의 위지트(widget)를 구현하여 SWT를 확대할 수 있습니다. SWT는 플랫폼 Workbench를 구현하는 데 필요한 사용자 정의 제어가 포함되어 있는 org.eclipse.swt.custom 패키지를 제공하지만, 코어 세트의 SWT 제어에는 이 사용자 정의 제어가 포함되어 있지 않습니다.

제어
목적
CBanner CBanner는 도구 모음 영역 및 Perspective 전환 도구 모음을 레이아웃하기 위해 Workbench에서 사용됩니다.
CCombo Combo와 유사하지만 테이블 셀에 맞출 수 있도록 세로로 크기를 조정할 수 있습니다.
CLabel Label과 유사하지만 생략 부호를 사용하여 텍스트 축약을 지원합니다. 또한 활성 Workbench 보기로 표시된 배경색의 그라데이션 효과도 지원합니다. 줄 바꾸기는 지원하지 않습니다.
CTabFolder TabFolder와 유사하지만 맨 위 또는 맨 아래 탭과 경계선 모양의 추가 구성을 지원합니다.
CTabItem CTabFolder의 페이지의 경우 탭에 해당하는 선택 가능한 사용자 인터페이스 오브젝트
SashForm 하위를 행 또는 열 배열로 표시하고 새시를 사용하여 하위를 구분하여 사용자가 크기를 조정할 수 있는 컴포지트 제어
ScrolledComposite 컨텐츠를 이동하고 선택적으로 컨텐츠를 확장하여 사용 가능한 공간을 채우는 컴포지트 제어
StyledText 사용자가 텍스트를 입력할 수 있는 편집 가능한 제어. 제어 내부의 텍스트 범위에는 고유 색상 및 글꼴 스타일이 있을 수 있습니다.
ViewForm ViewForm은 보기의 레이블/도구 모음/메뉴 로컬 표시줄 위치를 지정하고 크기 조정하기 위해 Workbench에서 사용됩니다.

사용자 정의 위지트 구현

사용자 정의 위지트(widget)가 필요한지 확인하고 지원할 플랫폼을 결정했으면 위지트(widget)에 대한 여러 구현 방법을 생각해 볼 수 있습니다. 기본 OS 플랫폼에서 사용할 수 있는 내용에 따라 다음 방법을 혼합 및 대응시킬 수 있습니다.

기본 구현

SWT에서 제공하지 않는 기본 위지트(widget)가 응용프로그램에 필요할 경우 기본적으로 이를 구현해야 합니다. 플랫폼 위지트(widget), 타사의 위지트(widget) 또는 플랫폼 공유 라이브러리의 기타 위지트(widget) 등이 될 수 있습니다. SWT를 사용하여 사용자 고유 위지트 작성에 기본 사용자 정의 위지트 구현에 대한 전체 예제가 있습니다.

기존 위지트 결합

위지트(widget)를 결합하여 더 정교한 위지트를 만들 수 있습니다. 예를 들어, Combo는 단추 및 드롭 다운 목록과 함께 텍스트 항목 위지트를 사용하여 구현할 수 있습니다. 결합된 위지트를 구현하려면 컴포지트 서브클래스를 작성하고 내부적으로 하위 요소를 관리합니다.

간단한 예제는 CCombo에서 볼 수 있습니다.

사용자 작성 구현

새 위지트(widget) 구현을 도와줄 수 있는 기본 코드나 기존 위지트(widget)가 없는 경우도 있습니다. 이는 페인트 이벤트에 대한 핸들러에서는 사용자 스스로 위지트를 그려야 함을 의미합니다. 이 방법은 매우 복잡할 수 있지만 완벽하게 이식 가능한 구현을 작성할 수 있는 이점이 있습니다.

사용자 정의 작도 제어는 캔버스 또는 컴포지트를 서브클래스화하여 구현됩니다. 사용자의 위지트에 하위 제어가 없을 경우에는 캔버스를 서브클래스화하십시오.

사용자 작성 위지트(widget)의 내부 구현에는 대개 다음과 같은 주요 작업이 포함됩니다.

org.eclipse.swt.custom에 구현된 많은 위지트(widget)에서 이 방법을 사용합니다. CLabel에 간단한 예가 있습니다.

사용자 정의 위지트(widget)에 대한 자세한 내용은 Creating your own widgets using SWT를 참조하십시오.