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

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

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

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

Обновление 2: позвольте мне уточнить - у меня нет проблем с использованием самого Swing (инструментария виджетов), я говорю о его Application 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, я думаю, что лучшее решение состоит в том, чтобы обернуть текущую реализацию в "доморощенную" структуру, которая затем может вместить возможные изменения в существующем API.

5 ответов

Решение

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

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

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

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

  • использовал его и читать Javadoc всякий раз, когда это необходимо

  • иногда взглянул на исходный код, чтобы смягчить недостатки Javadoc

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

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

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

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

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

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

Не то, что я знаю из. Я решил избегать использования фреймворка Swing, пока он не вырастет (или не умрет) Вместо этого я решил использовать библиотеки jgoodies, чтобы дождаться, пока Sun сделает что-то для разработчиков Swing.

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

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

Если вы хотите книги, то у обычных подозреваемых (МакГроу Хилл, О'Рейли) и других есть много информации для тех, кто обладает всеми уровнями знаний. Некоторые книги ссылаются на Swing под его старым названием "Java Foundation Classes" или JFC.

Другие вопросы по тегам