Необходимо создать приложение на Java, GUI для десктопа(что бы запускалось на Windows/Linux). Цель — самообучение. Какой фреймворк лучше учить AWT или Swing?
Лучше всего, конечно учить Swing. Таким образом сразу убивается несколько зайцев — приходит понимание ActionListener'ов, построения непосредственно графики в приложении, да и он является надстройкой над AWT, что делает его красивее
Посмотрите javabuilders. Работает поверх Swing, позволяет декларативно размечать UI через yaml — такие файлы могут играть роль view, а в Java коде получается controller (вроде MVC получается), имеет удобный MigLayout. Есть подробный PDF Book.