Takhle to dělají GTK a Qt a spousta dalších multiplatformních knihoven pro tvorbu GUI. Jedna vrstva má na starosti ovládací prvky, druhá vrstva má na starosti (nejen) kreslení. Vrstva na kreslení (v případě Swingu Java2D) má většinou nějakou část, která musí být jiná pro každý podporovaný OS.