Хороший проект Swing для изучения лучших практик

Я бы хотел, чтобы какой-то проект, разработанный на Java, изучал лучшие методы Swing. Я имею в виду проект с открытым исходным кодом, размещенный в Интернете через SVN или аналогичный. Я читал некоторые вопросы в Stackoverflow об этой теме, но я бы видел некоторые проекты. Спасибо.

Ответ 1

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

Прочитайте реализации JTable, JTree, JScrollPane, различных LookAndFeels, SwingWorker, SwingUtilities. Их обработка событий и шаблоны MVC чрезвычайно сложны, но очень читабельны, удобны в обслуживании и расширяемы. Essentailly, каждый раз, когда вы используете компонент, идите читать исходный код и понимать, что и почему они это делают. В конце концов, вы начнете делать то же самое.

И самое главное, код. Напишите несколько крупных программ, и вы начнете видеть вещи, которые не кажутся правильными или оптимальными. Приходите к Stack и узнайте, что вы делаете неправильно или можете сделать лучше. Напишите что-то еще и сделайте то же самое.

Тем не менее, следующие проекты имеют (или, вероятно, имеют) хороший код:

SwingX - Составители SwingX были людьми Sun/ex-Sun, и я всегда думал об этом как о неофициальном инкубаторе для будущих функций Swing.

Squirrel (клиент JDBC) - я на самом деле не посмотрел их источник, но я использовал программу в течение многих лет, и это не показать какие-либо общие недостатки в плохо написанных программах Swing. Насколько он эффективен, и насколько хорошо он работает, я бы пожертвовал деньги, которые он очень хорошо написал.

InfoNode (мощная инфраструктура стыковки). Я прошел довольно много кода и довольно прост.

JFreeChart (мощная графическая библиотека) - не самый лучший код, но намного лучше среднего, особенно учитывая его старый проект, который никогда не был предназначенный для того, чтобы все, что люди используют для этого. Тем не менее, это очень расширяемо, и у меня никогда не возникало проблем, связанных с моими потребностями (которые намного больше, чем его первоначальные намерения).

GlazedLists (Высокопроизводительная библиотека списков событий) - Не совсем Swing, но обработка событий похожа на Swing. Они также имеют реализации моделей Swing и некоторых пользовательских компонентов, которые очень быстры.

Общий уровень JIDE: массивная коллекция пользовательских компонентов, которая служит основой для их коммерческих компонентов. Я не прошел через их код, но их компоненты прекрасны, и поскольку их основное внимание уделяется коммерческим компонентам Swing, я снова вкладываю деньги в то, что их код прочен.

Ответ 2

Мне было очень интересно увидеть приложение профессионального качества, написанное в Swing, например IntelliJ IDEA Community Edition. Теперь, когда он открыт с открытым исходным кодом, вы можете проверить код и начать копать. Будьте предупреждены, но комментариев нет!