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), действительно полезен. Если я вижу, что метод появляется в диалоговом окне завершения, с которым я не знаком, я просто нажму "Перейти к исходнику" и огляделся, пока мне это не понравится.