Как на самом деле использовать Swing Application Framework?

Я хотел бы узнать, как эффективно использовать Swing Application Framework. Большинство примеров, которые я нашел, представляют собой записи в блогах, которые просто объясняют, как это здорово расширять SingleFrameApplication и переопределять его метод запуска, но об этом. Sun article почти двух лет, а проект собственного введения, и с тех пор, по-видимому, произошла некоторая эволюция.

Есть ли какие-либо недавние и исчерпывающие учебники /HOWTO, доступные в любом месте? Конечно, есть JavaDoc, но трудно получить оттуда большую картину. Любые указатели оцениваются.

Обновление: Я понял, что на сайте проекта есть архив списка рассылки. В то время как несколько неуклюжий (по сравнению с StackOverflow;), он кажется довольно активным. Тем не менее, жаль, что в любом месте нет реальных обучающих программ. Информация разбросана здесь и там.

Обновление 2: Позвольте мне пояснить. У меня нет проблем с использованием Swing (самого инструментария виджета), я говорю о его Framework приложения, который должен облегчить такие вещи, как жизненный цикл приложения (запуск, выход и все, что происходит между ними), управление действиями и т.д. - то есть вещи, которые потребуются большинству приложений Swing. Это круто, чтобы получить такую ​​структуру как стандартную часть Java. Единственная проблема заключается в том, чтобы узнать, как она предназначена для использования.

Обновление 3:. Для заинтересованных было только обсуждение на форуме проекта относительно текущего состояния и будущего JSR 296. Вскоре: текущая версия 1.03 считается вполне пригодной, , но API нестабилен и будет изменяться на окончательную версию в Java 7. Название пакета также изменится, поэтому Java 7 не нарушит текущие приложения, сделанные в SAF.

Обновление 4: Карстен Лентш заявил на вышеупомянутом форуме: "Я сомневаюсь, что он может быть включен в Java 7, и я буду голосовать против него". Я бы предпочел не подвергать сомнению искренность этого великого гуру, и, конечно же, разумно не допустить, чтобы что-то испортилось, чтобы проскользнуть в основной JDK, но, откровенно говоря, это странная ситуация - он является автором JGoodies Swing Suite, который отчасти является коммерческим конкурентом JSR 296, и он сидит в комитете, который решит, будет ли этот JSR включен в стандартную Java. Это было то же самое с JSR 295 Beans Binding, о котором я писал ранее.

Учитывая текущее состояние SAF, я считаю, что лучшим решением является перенос текущей реализации в среду "homebrew", которая затем может вносить возможные изменения в существующий API.

Ответ 1

Прежде всего, мои личные советы состоят в том, чтобы не использовать последнюю версию SAF, которая больше похожа на "рефакторинг в процессе" (и это не развивалось уже 6 месяцев...)

Я предпочитаю версию "1.03", которая, хотя и не идеальна, гораздо более стабильна и удобна (я имею в виду в реальном приложении).

Верно, что ресурсов, связанных с SAF, недостаточно. Я помню, что я пошел по этому пути:

  • прочитайте семинар JavaOne 2007 об этом; это дает неплохую об этом

  • использовал его и читал javadoc при необходимости

  • иногда рассматривал исходный код для устранения недостатков javadoc

В настоящее время список рассылки неактивен (но его истинный трафик только немного перезапустился с начала года, однако я не видел там представителя Sun с августа или сентября 2008 года!)

В прошлом году, примерно через год практики SAF, я выступил с докладом на Jazoon'08, вы можете найти слайды в моем блоге. Эта презентация была больше о советах и ​​трюках, которые я собрал при использовании фреймворка.

Иногда мне также приходилось исправлять некоторые моменты, потому что многие проблемы давно (некоторые из них не важны для меня, некоторые другие блокировки).

Я помню, что видел (не присутствовал) еще одну презентацию о практике SAF на конференции, которую я думаю в Швеции, извините, не могу вспомнить больше деталей. Интересно также.

Это в значительной степени то, что существует об этом (насколько мне известно).

Ответ 2

Netbeans 6.5 имеет скелетные приложения, которые могут дать вам хороший kickstart. Просто создайте новый проект из среды IDE и выберите Java > Java Desktop Application.

Ответ 3

Не то, чтобы я знал. Я решил не использовать рамки приложения swing до тех пор, пока не созреет (или не умрет). Я решил использовать библиотеки jgoodies, чтобы ждать, пока Sun что-то сделает для разработчиков swing.

Ответ 4

Вы можете взглянуть на SwingWiki, в котором есть ряд лучших практик и руководств, хотя он не обновлялся в течение примерно двух лет.

Ответ 5

Хотя верно, что за последние два года произошла какая-то эволюция Swing, основные принципы не сильно изменились. Я бы начал с собственных учебников Sun.

Если вам нужны книги, то от обычных подозреваемых (McGraw Hill, O'Reilly) и других можно получить много других для тех, кто знает все уровни знаний. Некоторые книги относятся к Swing по его старому имени "Java Foundation Classes" или JFC.