Anpassade gränssnittskontroller

Du kan vilja utöka SWT genom att implementera en anpassad gränssnittskontroll. SWT själv tillhandahåller ett paket, org.eclipse.swt.custom, som innehåller anpassade kontroller. Dessa finns inte med i kärnuppsättningen SWT-kontroller men behövs för att implementera plattformens arbetsmiljö.

Kontroll
Ändamål
CBanner CBanner används i arbetsmiljön för layouten av verktygsfältsområdet och perspektivväxlande verktygsfält.
CCombo Påminner om Combo men kan storleksändras på vertikalen så att den få plats i tabellceller.
CLabel Påminner om Label men kan hantera avkortningen av texten med en ellips. Kan också hantera en toningseffekt för bakgrundsfärgen på det sätt som visas i aktiv arbetsmiljövy. Radbrytning kan inte hanteras.
CTabFolder Påminner om TabFolder men kan hantera ytterligare konfiguration av utseende på flikar (överst och underst) samt kanter.
CTabItem Valbart användargränssnittsobjekt motsvarande en flik för en sida i en CTabFolder.
SashForm Sammansatt kontroll för layout av underordnade objekt i en rad eller kolumn. Använder en båge för att skilja dem åt så att de kan storleksändras.
ScrolledComposite Sammansatt kontroll som bläddrar genom innehållet och som kan sträcka ut innehållet så att det fyller tillgängligt utrymme.
StyledText Redigerbar kontroll som kan användas till att mata in text. Olika textområden inuti kontrollen kan ha olika färger och teckensnittsstilar.
ViewForm ViewForm används i arbetsmiljön för att placera och ange storlek på etikett/verktygsfält/meny för en vys lokala fält.

Implementera en anpassad gränssnittskontroll

När du har bestämt dig för att du behöver en anpassad gränssnittskontroll och har bestämt vilka plattformar som måste kunna användas finns flera implementeringstekniker att överväga för gränssnittskontrollen. Dessa tekniker kan blandas och matchas beroende på vad som finns tillgängligt på underliggande operativsystem.

Ursprunglig implementation

Om tillämpningen kräver en ursprunglig gränssnittskontroll som inte finns i SWT måste du implementera den på ursprungligt sätt. Detta kan vara en gränssnittskontroll för plattform, tredje part eller något annat i ett delat bibliotek på plattformen. Ett komplett exempel på implementation av en ursprunglig, anpassad gränssnittskontroll finns i Creating Your Own Widgets using SWT.

Kombinera befintliga gränssnittskontroller

Gränssnittskontroller kan kombineras för att skapa mer sofistikerade gränssnittskontroller. Exempelvis kan en Combo implementeras med hjälp av en gränssnittskontroll för textinmatning tillsammans med en knapp och en listmeny. Om du vill implementera en kombinerad gränssnittskontroll skapar du en underklass med Composite och hanterar de underordnade objekten internt.

Ett enkelt exempel finns i CCombo.

Anpassad ritad implementation

I vissa fall finns inga befintliga, eller ursprungliga, gränssnittskontroller som kan hjälpa till implementationen av nya gränssnittskontroller. Detta innebär att du måste rita gränssnittskontrollen själv i hanteraren för Paint-händelsen. Även om den här tekniken kan bli rätt komplicerad är fördelen att en fullständigt portabel implementation skapas.

Anpassade ritade kontroller implementeras med hjälp av underklasserna Canvas eller Composite. Underklassen Canvas om gränssnittskontrollen inte innehåller några underordnade kontroller.

Den interna implementationen av en anpassad, ritad gränssnittskontroll inbegriper vanligen dessa huvudsakliga uppgifter:

Många av de gränssnittskontroller som implementerats i org.eclipse.swt.custom gör så här. Ett enkelt exempel finns i CLabel.

Ytterligare information om anpassade gränssnittskontroller finns i Creating your own widgets using SWT.