Как на самом деле использовать 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.