Java GUI Swing Model Explanation

Я работаю с Swing некоторое время, но вся модель/структура JFrame s, paint(), super и т.д. все в моем сознании. Мне нужно четкое объяснение или ссылка, которая объяснит, как организована вся система графического интерфейса.

Ответы

Ответ 1

То же самое случилось со мной. На самом деле и по сей день я не совсем получаю 100%, как все это работает.

Swing - очень гибкая структура - возможно, слишком гибкая. С гибкостью приходит много абстракции, и с абстракцией возникает путаница.:)

Я нашел следующие статьи, которые стоит прочитать. Они помогли мне лучше понять общую картину Свинг.

Они хорошо объясняют, как работают модель и делегат. Меня всегда раздражает, когда я вижу те JLabel, LabelUI, ui.update и т.д.

Ответ 2

Посмотрели ли вы на Java Swing Tutorial (нажмите здесь)? Он неплохо справляется с основами разработки приложений Swing.

Ответ 3

Поскольку этот вопрос отмечен JFrame, я предложу несколько ссылок для понимания того, как работают JFrame и другие контейнеры Swing верхнего уровня.

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

Во-первых, основы: JFrame класс из спецификаций Java API. Спецификации Java API часто предоставляют хорошую подробную информацию о классах. В этом случае вы заметите, что есть несколько ссылок, таких как Как сделать кадры из Учебников Java.

Кроме того, я также рекомендую посмотреть Lesson: Using Swing Components из Учебников Java. В уроке приводятся инструкции по использованию компонентов, представленных в Swing, а также некоторые полезные примеры.

Для более специфических частей, которые я нашел сбивчивыми, когда я начал с Swing, были разные типы панелей, такие как ContentPane, RootPane, GlassPane. Раздел Использование контейнеров верхнего уровня содержит информацию и полезные диаграммы в иерархии контейнеров контейнеров верхнего уровня. В разделе Как использовать вкладки "Корневые панорамы" в разделе подробно рассказывается о панелях Glass, Layered и Content Panories с большим количеством примеров.

Ответ 4

Я нашел Swing Explorer, чтобы стать ценным инструментом для понимания иерархии компонентов (особенно в сложных GUI) и посмотреть на свойства (увы, только для чтения: мы привыкли к удобству Firebug!). Он имеет плагин Eclipse.

Ответ 5

Filthy Rich Клиенты от Chet Haase и Romain Guy - отличная книга о Java UI. Он также охватывает некоторые более сложные вещи, но введение и несколько первых глав хорошо объясняют основные вещи.

Ответ 6

Если после чтения учебника Swing вы найдете интерес к более продвинутым темам, вы также можете посмотреть Swing Second Edition Робинсона и Воробьева.

Ответ 7

Я обнаружил, что просто просмотр в исходном коде (ctrl-click по имени, если вы используете NetBeans), действительно полезен. Если я вижу, что метод появляется в диалоговом окне завершения, с которым я не знаком, я просто нажму "Перейти к исходнику" и огляделся, пока мне это не понравится.