В документации Oracle указано:
Примечание: класс com.sun.awt.AWTUtilities не является частью официально поддерживаемого API и отображается как деталь реализации. API предназначен только для ограниченного использования вне базовой платформы. Это может резко измениться между выпусками обновлений, и даже может быть удалено или перемещено в некоторые другие пакеты или классы. Класс должен использоваться через Java Reflection. Поддерживаемые и общедоступные API появятся в следующем основном выпуске JDK.
JDK 7 уже давно придет, так что может пройти некоторое время. Нужно ли вам это использовать - это вопрос управления рисками, на который может ответить только ваша компания. Если мы говорим о внутреннем приложении, в котором развернутая JRE может быть гарантирована, то у вас не будет проблем, потому что вы можете гарантировать совместимую JRE. Если мы говорим о развертывании для внешних клиентов, вам нужен план поддержки, если этот временный API когда-либо изменится.
Устойчивый способ сделать это - создать оболочку в SWT согласно этому фрагменту , а затем использовать мост SWT_AWT, чтобы получить фрейм для использования в вашем приложении:
java.awt.Frame frame = SWT_AWT.new_Frame(shell);
Если вы просто развертываете на одной платформе (например, Windows), тогда бросьте одну банку SWT плюс собственную библиотеку. Если вы нацеливаетесь на несколько платформ, это становится проблемой.
Так что это два варианта: справиться с риском AWTUtilities или использовать мост SWT_AWT.
EDIT:
Некоторое время прошло, а Java 7 вышла. Документация по официально поддерживаемому способу достижения этой цели содержится в Java Tutorials . Раздел «Как реализовать фасонное окно» внизу дает пример. Это, конечно, предполагает, что вы можете использовать Java 7