Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > Переносимый GUI, модель Java (плюсы и минусы)


Автор: regis 20.6.2006, 15:34
Всех Java-программистов приветствую!

Требуется консультация по теме, вынесенной в заголовок. Насколько я понимаю, в Java-приложениях графический интерфейс реализуется через классы AWT? Хотелось бы знать мнение профессионалов, насколько эта библиотека классов удачна (я прежде всего имею в виду идеологию, а не реализацию).

Эта тема интересна мне потому, что мне (для собственного проекта) нужен абстрактный графический интерфейс, не зависящий от платформы (Windows, Linux+X) --- хотелось бы знать, насколько Java-подход можно считать удачным с точки зрения практика. Сам я в Java ориентируюсь очень слабо, поэтому и решил поинтресоваться здесь. Заранее признателен...

 

Автор: Бонифаций 20.6.2006, 15:40
AWT очень уж старенькая. Горазжо чаще используют swing

Если вы привязани именно к яве - лучше все же swing или swt. Если вы _не_ привязаны (вы пишите что слабо ориентируетесь), то посмотрите в сторону QT или wxwidgets для C++ 

Автор: powerOn 20.6.2006, 15:56
AWT  - это старая технология, отличается зависимостью отображения GUI компонентов от платформы на котором выполняется программа. AWT представляет собой набор тяжелых компонентов, прорисовкой которых занимается сама OC. Это означает, что под разными операционными системами интерфейс будет выглядеть по разному, а то что красиво под Windows не всегда хорошо смотрится под Linux. 

Цитата(regis @  20.6.2006,  16:34 Найти цитируемый пост)
 нужен абстрактный графический интерфейс, не зависящий от платформы (Windows, Linux+X)

 - это Swing.

На смену AWT пришел легковесный Swing с улучшенной архитектурой и универсальным для всех платформ отображениям компонентов. Swing рисует графическая система Java, а ОС ничего не знает о Swing  в отличии от AWT компонентов. Плюс Swing обладает расширенным набором элементов управления и множеством полезных меточей, отсутствующих в AWT (один Look And Feel чего стоит).

Мое мнение такое: если GUI, то Swing. 


 

Автор: batigoal 20.6.2006, 16:26
Цитата(regis @  20.6.2006,  16:34 Найти цитируемый пост)
насколько эта библиотека классов удачна (я прежде всего имею в виду идеологию, а не реализацию)

В плане идеологии, я считаю, Swing спроектирован очень грамотно. Четкая иерархия классов и строгое соблюдение идеологии модель-представление. 

Автор: LSD 20.6.2006, 22:41
Минусы состоят в том, что нельзя на полную катушку использовать возможности платформы. Например сворачивание Java приложения в трей, не реализовать без сторонних библиотек. Работает это дело медленней, чем нативные компоненты.
Хотя с другой стороны, тот же SWING полностью прозрачен, для программиста и позволяет довольно сильно вмешиваться в свою работу. Да и спроектирован, очень грамотно. 

Автор: regis 22.6.2006, 15:14
Спасибо всем, покопаюсь в SWING, за который подано больше всего голосов.
Хотя, как я понял, если все компоненты интерфейса выглядят одинаково между платформами -- значит, отрисовываются они средствами самого SWING'a? А как это сказывается на эффективности? Вроде, если за отрисовку ответственна сама ОС должно быть быстрее?

 

Автор: LSD 22.6.2006, 22:59
Цитата(regis @  22.6.2006,  16:14 Найти цитируемый пост)
Вроде, если за отрисовку ответственна сама ОС должно быть быстрее?

Да, вопрос только в том насколько велики потери в скорости. По мне ими можно и пренебречь. 

Автор: regis 29.6.2006, 14:36
Еще один вопрос: а исходники SWING доступны? И если да, то где их можно скачать?
 

Автор: powerOn 29.6.2006, 14:50
Исходники доступны. Исходники Swing идут вместе с исходниками JDK. А исходники JDK поставляются вместе с JDK (src.zip). По крайней мере 1.5.06 и 1.5.07 имеются.  А так исходники JDK http://java.sun.com/javase/downloads/index.jsp лежат. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)