# Java > Interfaces Graphiques en Java > AWT/Swing >  Vous utilisez SWT ou Swing ?

## c-top

Voila on entend beaucoup parler de SWT comme concurrent srieux de swing. Plus rapide, plus facile  manier etc...
Qu'en pensent les utilisateurs rguliers de java ?

----------


## Glob

Swing: pas besoin de distribuer des jars/dll/autres bidules pour chaque OS possible.

Sinon SWT c'est super agrable aussi, j'ai rien contre, hein...  ::wink::

----------


## GLDavid

Je suis un partisan de Swing. Il est vrai que la programmation SWING n'est gure complexe (remarque celle de SWT non plus) et j'ai beaucoup de mal  me passer de SWING.
Cependant, la seule chose que je critique sur SWING concerne la programmation des Layout (surtout le GridBagLayout). A part a pour le dploiment d'une appli, c'est l'idal   ::D:  .

@++

----------


## c-top

GLDavid pour le developpement des IHM (et des gridbaglayout) j'utilise un RAD tel que NetBeans et je n'ai jamais rencontr aucune difficult. Tout se met en place trs facilement et cela permet de tester diffrentes possibilits.  ::P:

----------


## GLDavid

Ben, j'utilise aussi NetBeans, il n'mpche que je n'ai jamais trouv trs vident le principe des GridBagLayout, mais peut tre je fais un blocage et une fixation voir un traumatisme sur ce type de Layout   ::oops::   ::wink::   ::P:  .

@++

----------


## cpr0

Je suis plutt d'accord avec GLDavid, le GridBagLayout est plutt imbuvable et j'en suis moi mme revenu.

Je conseille vivement (et ce n'est pas la premire fois que j'en fait de la publicit) le package TableLayout qui s'utilise un peu  la faon des tableaux html, qui a je pense  peu prs tous les avantages du GridBagLayout mais qui est d'une simplicit dconcertante !

Bonne journe  tous ;-)...

----------


## GLDavid

Oh la belle trouvaille ! Merci cpr0, je vais m'empresser de tester tout a   ::wink::  .

@++

----------


## nicolasN

Moi je prefere swt: 
J'ai une machine plutot vielle et les gui avec Swing on tendance a etre un peu penible.
En plus, je trouve le cote natif un peu plus sympa.

----------


## lunatix

pareil, je suis plutot SWT, certes c'est un peu "jeune" encore, mais le rendu est bien plus agrable que swing.  et au niveau consomation memoire, c'est beaucoup beaucoup plus lger

De plus l'arrive de eclipse rcp (veritable framework de dev de client lourd) est une tres bonne nouvelle

----------


## Ioan

Bonjour  tous  ::D:  , 
J'ai vot pour *Utilisateur Swing*. 
Je vais essayer d'clairer mon choix en rpondant  certaines de vos remarques : 



> Voila on entend beaucoup parler de SWT comme concurrent srieux de swing


Il faut quand mme relativiser, concurrent srieux ne me parais pas un terme adquat. J'aurais prfr "une alternative interessante  swing". Il faut quand mme voir que Swing reste *la* librairie graphique pour Java, "sponsorise" (si je peux me permettre) par Sun. Il y a tout de mme une diffrence de catgorie  ::mrgreen::  



> Cependant, la seule chose que je critique sur SWING concerne la programmation des Layout


Personnelemnet je trouve le nombre de layout disponibles tout  fait correct. C'est vrai que le GridBagLayout est un peu plus difficile  prendre en main. Je ne l'utilise jamais car un assemblage de panels utilisant d'autres layout me suffit largement. Il suffit juste d'un peu d'imagination pour obtenir ce que l'on veux.



> Moi je prefere swt: 
> J'ai une machine plutot vielle et les gui avec Swing on tendance a etre un peu penible.


Moi aussi, j'utilise une vieille machine  ::cry::  . Mais, je n'ai jamais ressenti le besoin impratif de passer  SWT. Je pense qu'une bonne utilisation de swing n'est pas beaucoup plus lente que SWT. D'un autre ct, je ne suis pas un spcialiste de SWT, si vous avez des exemple particulirement parlants, je suis preneur  ::wink::  



> je suis plutot SWT, certes c'est un peu "jeune" encore, mais le rendu est bien plus agrable que swing


Je trouve le rendu de swing plutt agrable, sans parler de tous les l&f disponibles (celui de la 1.5 est pas mal d'ailleurs). 
Pour rsumer voici mes points positifs/ngatifs pour les deux libs : 
 ::arrow::  *Swing*
+ la librairies standard, cours et tutos en grand nombre, stable, complte
- une certaine lenteur pour de grosses applis
 ::arrow::  *SWT*
+ Ca change de swing  ::D:  , rapidit
- Encore incomplte a cause de son "age"
Ces points sont biensr subjectifs. Je ne suis pas un spcialiste de SWT. 
J'attends avec impatience les remarques des utilisateurs de SWT : 
La rapidit de SWT est-elle si vidente? 
Est elle vraiment complte? Que pouvez vous faire avec SWT que vous ne pouvez pas faire avec Swing, et inversement? 
Vous utilisez seulement SWT ou SWT/JFace? 
Question pige : Vous utilisez quel EDI pour dvellopper?   ::P:  
En attendant vos ractions, je conseille  tout le mode d'essayer SWT, ne serais ce que par curiosit  ::wink::  
@+

----------


## divxdede

J'aime bien SWING et JGOODIES pour ameliorer le rendu

Mais je n'ai jamais pratiqu SWT alors du coups je n'ai pas grand chose a dire.

----------


## c-top

- SWT a t dvelopp pour les besoins d'clipse ce qui me fait dire que SWT peut-tre un concurrent srieux  SWING. En effet on connait la guerre que se livre SUN et IBM pour imposer leur IDE. De nombreuses universit tournes vers le monde de l'entreprise(exemple des IUT) se posent le problme du choix d'un IDE. L'tudiant possde un atout majeur s'il connait bien l'environnement de dveloppement utilis par son employeur  ::):  ....

*Performances*
 ::arrow::  Il est vrai que sur une configuration matrielle moyenne, les composants natifs utiliss par SWT sont plus rapides que les composants complexes de Swing. Ceci se traduit par une meilleure rapidit de chargement des composants et surtout une meilleure ractivit aux sollicitations de l'utilisateur.

 ::arrow::  Mais je serais curieux de comparer un TableViewer JFace ainsi qu'une JTable Swing affichant tous deux quelques milliers d'lments, puis de comparer les temps de chargement. Malheureusement je n'utilise pas SWT et je n'ai pas trop le temps d'essayer alors s'il y a une ame charitable pour tenter l'exprience et nous faire part des rsultats  ::P:  

* Portabilit*

Ce qui me gne c'est que la stratgie de SWT oblige l'utilisation de bibliothques natives spcifiques  l'OS alors qu'il n'y a aucune contrainte particulire en Swing. Quelle que soit l'API, l'application est portable, mais dans le cas de SWT, il faudra pralablement installer les bibliothques natives et les jars ncessaires sur le systme du client ou mettre en place un systme de chargement dynamique de ceux-ci.

----------


## c-top

Observation

au moment ou j'cris ce message *290 personnes* ont ouvert le post sachant qu'il est question d'un songade et seulement *32 personnes* y ont rpondu   ::?: :

----------


## MATHON

*vedaer a crit:*
Moi aussi, j'utilise une vieille machine  . Mais, je n'ai jamais ressenti le besoin impratif de passer  SWT. Je pense qu'une bonne utilisation de swing n'est pas beaucoup plus lente que SWT.


Personnellement, je trouve la lenteur de SWING inacceptable. Je prend le cas d'une simple fentre sans bouton sans rien. Je la dplace "vivement" sur mon cran avec ma souris et j'observe une magnifique trane correspondant aux diffrents emplacements de ma fentre. Je n'ai rien cod de particulier, aussi, je ne pense pas avoir fait une mauvaise utilisation de SWING (j'ai un vieux P500MHz 256MO RAM). Je n'ai jamais vu ca avec C++, ou C#. Je comprend pourquoi le dveloppement d'interfaces lourdes en Java  eu du mal  dmarrer: il a fallu attendre que les postes soient suffisament performants.

Qui plus est, je reproche  SWING son pauvre support du format RTF. C'est gnant quand on a besoin d'une mise en page un peu volue. J'ai le sentiment que SUN ne cherche pas  faire vraiment voluer SWING.

Enfin, au niveau design, je fais mieux avec des JSP. Je trouve que les interfaces SWING ne font pas professionnel. En revanche, SWT ( en juger par le look d'clipse) assure bien. Mais l, je veux bien croire que je n'ai pas su trouver les configurations adquates.

Vincent

----------


## Didier

J'ai vot les deux   ::wink::  

Pour moi Swing et SWT possde chacun leurs avantages et .... leurs inconvnients.


Quelques points : 

Swing est portable car inclu dans la JVM.
Swing propose une gestion de look and feel qui permet de se rapprocher au mieux des interface native.
Swing propose une relle sparation Model - Vue (gestion des donnes indpendantes de la gestion de l'affichage).
Les performances de SWING on grandement t amlior dans les dernires versions de la JVM.


SWT est port sur une bonne partie des OS, et pour le distribuer, il suffit d'inclure avec les librairies souhaits.
SWT est cod sur des composants natifs donc plus proche de l'interface habituelle de l'utilisateur.
SWT n'as pas une relle sparation Model - Vue ce qui le rend parfois plus simple a apprhender.
SWT utilisant des composants natifs ses performances sont trs bonnes.

----------


## djangers

> Observation
> au moment ou j'cris ce message *290 personnes* ont ouvert le post sachant qu'il est question d'un songade et seulement *32 personnes* y ont rpondu  :


Je pense que la majorit de ces personnes est comme moi...
Je dois dvelopper une appli Java professionnelle et je me demande bien quelle technologie choisir! SWT / SWING....
A en croire les diffrents posts, personne, hlas, n'a la solution idale...   ::roll::

----------


## narmataru

bonjour,
moi aussi j'utilise swing car je n'ai pas encore eu l'ocasion d'utiliser swt et que je n'ai pas rencontr trop de problme avec swing.
Sinon pour ceux qui n'aime pas les layouts de sun :

http://www.developpez.net/forums/vie...301&highlight=

en rsum : 

 Il suffit d'utiliser un autre gestionnaire de composant que ceux propos dans le JDK de sun.

Apparemment les meilleurs sont :
- formLayout : http://www.jgoodies.com/freeware/forms/index.html
 lire : http://www.jgoodies.com/articles/forms.pdf

- explicitLayout : http://www.zookitec.com/explicitlayout.html
ex : http://www.zookitec.com/GeometryDemo.html


voilou  ::):

----------


## c-top

Un article qui commente et compare certains points avec des examples en swing et swt
http://<br />
http://www.ftponline...._pf.aspx<br />

----------


## szdavid

Personnellement, j'utilise swing car... je ne connais mme pas swt...

----------


## BainE

> *vedaer a crit:*
>  Je n'ai jamais vu ca avec C++, ou C#. 
> Vincent


en meme temps que le java soit moins rapide ca se comprend, sisi un peu...
on pourrait aussi comparer le temps mis en c++ pour faire l'interface (sans rad, cod a l'ancienne dans la sueur...), dis comme ca on peut etre  plus tolerent sur la rapidit d'execution, en general !!

enfin perso j'utilise swing pourtant je bosse sur eclipse...   :8O:  
si swt n'est pas portable sa fout un peu en l'air le writeOnceRunAnywhere, un des grand avantage du java ?

----------


## syj

J'utilise SWING pour le dveloppement d'applet (client-rich).
J'utilise SWT/JFace pour le dveloppement d'un plugin sous eclipse

Mais perso, je trouve que le sondage est un peu fauss.
De ce que j'ai vu de l'utilisation de SWT. On peut plus le comparer  AWT qu'avec SWING.
Comme qq1 la dj not, la sparation entre le modle et la vue n'est pas relement abord  dans SWT.
Par contre JFace qui est une librairie au-dessus de SWT offre justement les outils pour raliser la sparation entre le modle et la vue.

Personnelement, j'ai fait bcp plus de programmation Swing que SWT/JFaces donc je me trompe peut-tre.

Un expert pourra peut tre confirmer ou infirmer ?

----------


## syj

> J'utilise SWING pour le dveloppement d'applet (client-rich).
> J'utilise SWT/JFace pour le dveloppement d'un plugin sous eclipse
> 
> Mais perso, je trouve que le sondage est un peu fauss.
> De ce que j'ai vu de l'utilisation de SWT. On peut plus le comparer  AWT qu'avec SWING.
> Comme qq1 la dj not, la sparation entre le modle et la vue n'est pas relement abord  dans SWT.
> Par contre JFace qui est une librairie au-dessus de SWT offre justement les outils pour raliser la sparation entre le modle et la vue.
> 
> Personnelement, j'ai fait bcp plus de programmation Swing que SWT/JFaces donc je me trompe peut-tre.
> ...


Un lien confirmant ;-):
http://etudiant.univ-mlv.fr/~nsebban/SWT/principes_utilisation_swt_avec_jface.html

----------


## quilo

H bien moi j'utilise pour l'instant SWING pour de trs grosses appli mais on passe bientt  SWT. La rapidit est un facteur important pour nos utilisateur qui ne sont pas content des performances de nos applications (niveau GUI). Ainsi un groupe  test SWT et la diffrence est indiscutable. Quant au dveloppement, je ne connais que trs peu mais a me semble beaucoup plus simple et structur que SWING. 

Pour rpondre  vaeder, Sun ne prend pas toujours les bonnes dcision et reprennent parfois (pour ne pas dire souvent) les bonnes ides dveloppes par d'autres (Struts devenus les JSF). JDO n'est pas non plus le top et les Entity Beans non plus d'ailleurs. Hibernate est une solution moins couteuse, plus rapide et plus prouves. Il est ainsi possible qu'un jour Sun nous sorte un SMachin  la sauce SWT.

Mais ceci n'est que mon avis aprs des essais sur les diffrents produits et quelques annes d'exprience. Je pense surtout que chacun se fait sa propre exprience et que l'idal est de se faire son propre avis et surtout que a fonctionne comme on le veut.

----------


## c-top

A moins que la solution vienne d'ailleurs  ::cfou:: 




> July 16, 2004 
> AWT and Swing support continues to improve rapidly. Thomas Fitzsimmons of Red Hat added support for the AWT 1.0 event model, still used by many web applets. This means that Slime Volleyball now runs on GCJ and gcjwebplugin. Here's the evidence!


http://gcc.gnu.org/java/
merci  eux

----------


## mdes

Jutilise SWT quand je veux compiler mon code java en binaire natif (*.exe sous Windows).
GCJ compile sans problme SWT est link lobjet avec les DLL de SWT.
Chose qui nai pas possible avec Swing, il y a bien un portage de Swing (SwingWT) qui est en fait un sur ensemble de SWT mais qui est compatible sur la syntaxe avec Swing et quon peut compiler sans trop de souci avec GCJ, mais cette bibliothque est encore jeune et pas totalement complte.

http://gcc.gnu.org/java/
http://swingwt.sourceforge.net/

----------


## sonialem2000

les jfc sont une couche au dessus de swing... donc c'est encore plus lent?

qu'apporte jfc?

----------


## c-top

> GCJ compile sans problme SWT est link lobjet avec les DLL de SWT.


Peux-tu donner un exemple trs simple de prog SWT avec l'adresse du compilateur et ta ligne de compilation.
 ::wink::  

merci pour cet effort

----------


## igonzo

Avant j'utilisait swing  contre coeur mais depuis que j'ai dcouvert JGoodies (forms, binding, validation, animation) c'est tout simplement gnial, je prends mme du plaisir  crer des gui.

----------


## Gfx

> J'ai le sentiment que SUN ne cherche pas  faire vraiment voluer SWING.


Ca me fait mal de lire ca... je bosse dans l'equipe Swing de Sun  ::): 




> les jfc sont une couche au dessus de swing... donc c'est encore plus lent?


Les JFC sont le vieux nom pour Swing en fait.




> eprennent parfois (pour ne pas dire souvent) les bonnes ides dveloppes par d'autres (Struts devenus les JSF)


Chose amusante, l'auteur de Struts bosse chez Sun.




> Je comprend pourquoi le dveloppement d'interfaces lourdes en Java  eu du mal  dmarrer


J'ai commence a developper des GUI Swing sur des P120 et P200 et a l'epoque les performances etaient deja acceptables si tu ne programmais pas ton UI n'importe comment... Swing devrait etre plus simple pour certaines choses (la gestion de l'EDT par exemple) mais les performances sont la.

Personnellement (je ne parle pas en tant qu'employe de Sun), je trouve que l'API de SWT est un retour en arriere en matiere de conception. Je trouve son architecture moins agreable et moins souple que Sun. En fait chaque fois que j'ai code en SWT ca m'a rappele la programmation Win32/MFC. Quant a l'aspect natif des composants ca depend vraiment de quoi, les onglets par exemple...

Quoi qu'il en soit les deux peuvent tres bien cohabiter. Apres tout quand on programme en C++ ou en Python (par exemple) on peut choisir parmi plusieurs toolkits. Pourquoi pas en Java ?

----------


## Info-Rital

J'ai vot Swing.

Swing m'a toujours satisfait et je n'ai jamais eprouv le besoin de changer d'API.  ::):  Je n'ai pas eu non plus de problmes de performances avec Swing.

Je ne dis pas que je n'aime pas SWT, car je n'ai jamais dvelopp avec. J'aime vraiment le fonctionnement de Swing pour coder des GUI. Mais j'utilise Eclipse (qui utilise SWT) et  vrai dire, les performances sont bonnes aussi et les composants ont un aspect plus natif (mais pas tous, par ex : les onglets comme le dit Gfx).

Mais il y avait deux choses qui me gnaient avec Swing : l'antialiasing des polices et le look&feel.

Pour l'AA, Java 5.0 corrige cela  ::):  et Java 6.0 ajoute l'antialising LCD. Donc dj un point de rsolu (Au passage, est-ce qu'il existe un moyen d'activer par dfaut l'antialising sur toute les applications Swing ?).

Pour ce qui est des look&feel, je n'ai jamais vraiment accroch sur les L&F par dfaut, quoique le le Ocean tait pas mal  ::): . Mais ce qui me gnait surtout c'est qu'ils ne s'integraient pas bien avec le reste de l'environnement. Il y a dj des L&F natifs pour Mac OS X, Windows XP et GTK, mais pour ce dernier, il ne supporte pas par exemple Clearlooks.
Mais avec Java 6.0, j'ai vu que le thme GTK a t recrit. Et personnellement je trouve que a rend vraiment trs bien (c'est pas parfait non plus, mais Mustang est encore en dveloppement  ::): ). Mes applis Swing ressemblent dj beaucoup plus  mes autres applis  ::): .

Sinon j'en profite aussi pour demander, avec ce genre de thme, les performances devraient etre thoriquement meilleure non ? Ce sont bien les composants sous-jacents de la machine qui sont utilises ?
Et aussi, si je suis le seul  avoir JWS qui crashe tout de suite avec Mustang (sous Ubuntu 5.10) ?

Donc un grand bravo  l'quipe Swing qui me semble faire un excellent boulot sur Mustang  :;): .

----------


## Gfx

> Au passage, est-ce qu'il existe un moyen d'activer par dfaut l'antialising sur toute les applications Swing ?


Pas a ma connaissance. Mustang l'active par defaut cela dit.




> les performances devraient etre thoriquement meilleure non ? Ce sont bien les composants sous-jacents de la machine qui sont utilises ?


En fait... non  ::):  Le look and feel lit le theme GTK et utilise les memes images. C'est en fait base sur le look and feel Synth qui permet de creer un look and feel avec un simple fichier XML.

----------


## soad

Vu que le choix est entre SWING et SWT je dirais plutot SWING mais la actuellement je fais plutot du AWT pour les applets au cause d'un certain Microsoft !!!

----------


## eclesia

Je vote SWING aussi.
(je n'ai que 2ans de java derriere moi)

j'ai pu essayer un peu le SWT, mais honnetement c'est "un retour en arriere" comme quelqu'un le dit.

le java c'est pour moi 3 lments cls :

- *le GarbageCollector*
j'ai cru comprendre que le swt "oblige" a appeller la methode dispose() pour bien liberer la memoire, si c'est bien le cas, ca suffit a me faire reculer.

- *la portabilit*
pas le cas de SWT

- *rester abstrait* "algo"
de mon point de vue, un bon developpement doit rester "sur son principe" toujours le meme s'il est bien fait. Autrement dit entre aujourd'hui et dans 50ans la structure et la logique doivent etre la meme.
la seule chose qui change c'est l'ordinateur, et ca ne doit pas avoir d'influence sur le code qu'on produit. (c'est le travail de la jre d'ajuster)

Enfin ca concerne que moi tout ca  ::mrgreen::  

SWING me parait bien assez performant pour 95% des applications, 
quand aux autres 5% ... on peut toujours faire les objets soi-meme a partir d'un JComponent.



*A VERIFIER*
J'ai cru comprendre que les elements swing sont fait en utilisant java2D, et que java2D devrait srieusement s'amliorer (voir dpasser) les performances de SWT grace au JSR231 (JOGL, openGL).
C'est prvu pour l't prochain une fois la 1.6 termine? je crois? non? *demande confirmation*

----------


## Pollux

Info:

la version 6 de java est sortie hier en version finalejogl et opengl ont plus d'importance sur la 3d que la 2d il me semble

----------


## sironimo

> J'aime bien SWING et JGOODIES pour ameliorer le rendu
> 
> Mais je n'ai jamais pratiqu SWT alors du coups je n'ai pas grand chose a dire.


Pas grande chose  rajouter, si ce n'est l'ternel problme de la portabilit avec SWT. Pourtant, Eclipse a de quoi plaire avec ses versions multi-plateformes et donc donner envie de se mettre  SWT. Mais comme l'a dit lunatix, je trouve la technologie encore un peu "jeune" pour y passer dfinitivement.




> J'ai cru comprendre que les elements swing sont fait en utilisant java2D, et que java2D devrait srieusement s'amliorer (voir dpasser) les performances de SWT grace au JSR231 (JOGL, openGL).


Des avis sur le sujet maintenant que la version officielle de java 6.0 est sorti depuis prs de 2 mois ?

----------


## Syrion

> Mais je serais curieux de comparer un TableViewer JFace ainsi qu'une JTable Swing affichant tous deux quelques milliers d'lments, puis de comparer les temps de chargement. Malheureusement je n'utilise pas SWT et je n'ai pas trop le temps d'essayer alors s'il y a une ame charitable pour tenter l'exprience et nous faire part des rsultats


Voil, c'est bien le problme : personne n'a fait un test du type "Java2D dmo" (un truc assez complet je veux dire), mais implment en swing dans un cas, en SWT dans l'autre.  Et ce pour chaque version de la JVM de Sun.

Je suis prt  parier qu'en Java 1.3-1.4 sur une JVM IBM, SWT est plus rapide. A partir de la 1.5.... SWT n'a qu' s'accrocher, sur tout sur une JVM Sun et sauf si effectivement votre machine est trop vieille pour avoir une carte acclratrice (mme une entre de game, a suffit!). En effet, les JVM rcentes sont acclres, et Java 6 fait parat-il un usage intensif d'OpenGL. SWT me semble compltement largu du point de vue perf  partir de Java 6.
Des courageux pour le test  la "hardware.com" ou autre ?

----------


## sironimo

Sinon j'ai dcouvert 2 APIs qui pourraient en intresser quelques uns :

il s'agit de SWTSwing et SwingWT

SWTSwing permet donc un portage de SWT vers Swing et inversment pour SwingWT.

Je ne sais pas o en sont concrtement les projets et si le portage d'une API  l'autre se passent sans trop de problme, mais le concept me semble intressant.

Par exemple, un dveloppeur Swing reoit un projet avec comme contrainte un dveloppement en SWT. N'ayant pas trop de temps, l'API SwingWT lui permettrait de travailler sous Swing tout en obtenant un rendu et un code utilisant SWT.

Bien sur, je pense qu'il ne faut pas rver d'un portage total et transparent notamment par leur fonctionnement, j'entends ici l'utilisation en natif de SWT.

Enfin, je pense que ce sont des ides  creuser  :;):

----------


## octal

Bonjour,
voil .. personellement j'utilise beaucoup SWT/JFace pour mes dveloppements, que ce soit pour des plugin Eclipse ou autre.

Ce que je pense des framework:
AWT: Primitif, je l'utilise pour une vieille applet. Suffisant pour un minimum d'interaction dans des pages web mais vraiment primitif.

SWING/JGoodies: Bon modele MVC. Lent vu qu'il n'est pas natif mais cela dit, la lenteur est toutes relative. Si l'on vite de mettre trop de n'importe quoi dans n'importe quoi, si l'on maitrise correctement les layout, les interfaces sont agrables et assez rapide. Le pb est tjr le look&feal qui n'est pas parfait sur certrains OS, mais SUN a fait du trs beau boulot  ce niveau l et ca va en s'amliorant. Cela dit il faut pas rver, portabilit et perfection n'existent pas dans ce bas monde. Il faut imprativement faire des consessions.

SWT/JFace: Look&Feal natif, et avec les JFace et modele MVC est parfait. La vitesse des application est trs bonne, et ceux qui ne sont pas convinqu n'ont qu' comparer l'ancienne version d'clipse crite en SWING et celle bas sur la premire mouture de SWT. Les compteurs de vitesse on carment exploser. On a utilis SWT pour 2 applis et il n'y a rien  dire. personne ne peut dire si c'est crit avec Delphi (composants std) ou Java. Si on utilise SWT sans JFace il est vrai que l'on peut lui reprocher une approche un peut primitive (je n'irais pas jusqu' dire que c'est aussi lourd que les MFC tout de mme). De plus, franchement SWT n'tait pas faite pour tre utilis sans JFace. C'est un peut comme si on disait que les composants de Delphi (VCL) que a ressemble aux MFC si on les utilisait sans l'objet TApplication et sans le designer visuel et si on grait les messages windows  la main.

Le choix  entre SWING/JGoodies et SWT/JFace est purement une question d'habitude je pense. Personellement je dveloppe depuis DOS et j'ai dcouvert tous les framework textuel et graphique au fure et  mesure, (TurboVision, MetaFrame, DGE, ... Windows 3.xxx, ) et j'avait meme crit un framework graphique pour TurboPascal qui avait t utilis pour plein d'appli dos. Je n'ai donc pas t choqu par la manire de SWT de rserver et librer explicitement les ressources, et je trouve que c'est une approche meilleure que celle de SUN avec son FULL MANAGED surtout sous windows. Meme Microsoft ne s'est pas empch d'utiliser le meme modele en .NET dans le GDI+ pour  la libration des objets utilisants des resources windows comme les brush et les contextes graphique (relisez vos cours .NET  ::):  ). de plus SWT ne vous oblige pas  librer la mmoire explicitement pour TOUS les objets, les composites s'occupents eu meme de faire librer ca en cascades  leurs enfants. De plus, sous Windows les resources tombent vite, donc une libration explicite ne vous laisse pas dpendant du bon vouloir du GC. Cela, ce n'est pas un choix IBM, c'est juste une manire de faire force par l'OS.

Pour la portabilit de SWT, je pense que les gens ne sont pas aussi impartial que cela. Franchement, je dveloppe mme des appli embarques avec des GUI en java, je ne vois vraiment pas l o SWT ne marche pas.
Combien d'applications avez vous dveloppez durant votre vie de dveloppeur en Java sur combien d'OS l'avez vous porte ? 
je dirais que 99% des appli (si l'on exclu l'embarque pour lequel SWT propose une version Compacte et SWING pareil) fonctionne sous Windows/OS2/MacOS/SOLARIS ... 
or SWT existe pour plus de 12 plateformes diffrentes maintenant. 
je en vois vraiment pas o SWT n'est pas portable.
Pour le dploiment, je pense que c'est aussi faux ... je me vois vraiment mal faire du dploiment pour une appli consquente  la main. On utilise tous des outils ddi. Pour SWT+Jface si vous utilisez RCP tout est fait automatiquement pour vois, si vous le faite  la main les millions de lib  dployer et dont les gens s'en plaignent sont : 
- UNE DLL ou 2 pour le support natif de l'OS
- Un ou 2 fichier JAR pour l'interface JNI

Donc on voit clairement que c'est super compliqu de dployer des appli SWT comparaitivement aux autres ...  ::mouarf::  

Bref c'tait juste mon avis personnel. n'en dplaise  certains. On peut passer notre temps  comparer les framework, je pense que l'on ne votera que pour celui que l'on connait bien et sur lequel on a pris ses petites habitudes.

Bonne journe  tous  ::):

----------


## puybaret

Il existe une ancienne version d'Eclipse qui tourne sous Swing ?  :8O:  
J'aimerai bien un lien pour voir ce que a donne....

----------


## sinok

> Il existe une ancienne version d'Eclipse qui tourne sous Swing ?  
> J'aimerai bien un lien pour voir ce que a donne....


Non en fait c'est un plugin qui passe toute l'interface en Swing: EoS (alis Eclipse on Swing)

Eclipse sous Napkin a a de la gueule

----------


## puybaret

> Non en fait c'est un plugin qui passe toute l'interface en Swing: EoS


Hum, donc comparer les performances de Swing et SWT/JFace dans ces conditions, c'est un peu biais non ?  ::?:  




> Eclipse sous Napkin a a de la gueule


Moi aussi, je trouve ce look and feel trs sympa. Pour faire des maquettes d'cran "propres", a a l'air impec !  :;):

----------


## sinok

> Hum, donc comparer les performances de Swing et SWT/JFace dans ces conditions, c'est un peu biais non ?


Ils ont utilis SWTSwing qui permet d'appeler du Swing en codant en SWT. Donc il y a videmment une surcouche et une perte de perf. De mme quelques tucs ne tournent pas encore comme la gestiond de la molette pour les ScrollBars.
Enfin ils ont d s'muser pour mettre a en place

----------


## puybaret

> Ils ont utilis SWTSwing qui permet d'appeler du Swing en codant en SWT. Donc il y a videmment une surcouche et une perte de perf.


Ouaips, on est donc d'accord, cette comparaison, c'est du n'importe quoi dans ces conditions !  ::(:  
Si octal (dont je ne doute pas des comptences) pouvait nous confirmer que c'est bien ainsi qu'il a test Eclipse sous Swing, ce serait bien...

----------


## octal

> Non en fait c'est un plugin qui passe toute l'interface en Swing



Non dsol, la version premire d'Eclipse t rellement crite sous SWING, mais VRAIMENT sous SWING. Dans le temps SWT n't pas encore ne, il t en cours de dveloppement. De plus Eclipse n't pas encore ce que l'on connait actuellement, c't encore  l'tat de prototype pour en faire un environnement de dveloppement pour les langages Objets chouchou d'IBM, et donc principalement destin  Smaltalk. Les perf n'tant pas au rendez vous, ils dcider de promouvoir SWT (en rachetant la socit qui l'avait dvelopp) et de l'utiliser comme base pour Eclipse (tel qu'on le connait actuellement).
J'ai plusieurs crit fait par des gens d'IBM qui t impliqu dans le projet et qui dcrivent l'historique complet de swt et des diffrentes version d'Eclipse depuis la naissance du projet, je ne peux malheureusement pas les diffuser pour des raisons de copyright  ::(:

----------


## puybaret

Au passage, si octal cherchait un peu, il en trouverait des problmes de portabilit de SWT. Sous Mac OS X, le pont SWT / AWT n'est toujours pas compltement implment, ce qui empche un paquet de plugins de fonctionner correctement sous Eclipse (comme Visual Editor par exemple).
Sous ce systme, il suffit par exemple d'inclure la lib SWT sans l'utiliser dans un projet Swing, pour l'empcher de fonctionner correctement !

----------


## octal

> Au passage, si octal cherchait un peu, il en trouverait des problmes de portabilit de SWT. Sous Mac OS X, le pont SWT / AWT n'est toujours pas compltement implment, ce qui empche un paquet de plugins de fonctionner correctement sous Eclipse (comme Visual Editor par exemple).
> Sous ce systme, il suffit par exemple d'inclure la lib SWT sans l'utiliser dans un projet Swing, pour l'empcher de fonctionner correctement !


je ne doute pas qu'il puisse y avoir de pb de compatibilit ici et l, d'ailleur allez y voir meme les sources des framework soit disant portable meme crit en C++ qui sont plein de IFDEF et de DEFINE ... 
Cependant pour des appli FULL SWT et CLEAN et non base sur des Pont et des bricollages et bidouille pour rcuprer des bout d'interfaces a et l, je n'ai jamais eu de pb sous MacOSX/GTK/Winxx ... 
je demanderai plutot  voir une appli "correctement" crite qui aurait des pb sous MacOSX  cause de Swt!!! et pour la portabilit je vous proposerai aussi d'aller voir les forum rserver  SWING surtout en ce qui concerne les lments fortement lis  l'OS comme les boites de dialogue d'ouverture de fichier ou les messages box ... qui soient refusent de s'ouvrir soient ne s'affiche que partiellement !!!

----------


## puybaret

> Non dsol, la version premire d'Eclipse t rellement crite sous SWING, mais VRAIMENT sous SWING.


Ravi de pouvoir discuter avec toi octal, est-ce qu'on peut encore la trouver quelque part cette version ? Si tu l'as encore, l'as-tu test avec Java 5 ou 6 ?



> Les perf n'tant pas au rendez vous, ils dcider de promouvoir SWT (en rachetant la socit qui l'avait dvelopp) et de l'utiliser comme base pour Eclipse (tel qu'on le connait actuellement).


Ah d'accord ! On parle d'une version de Swing / JRE qui date de plus de 7 ans.
Mais tout le monde sait que maintenant Swing est bien plus performant ! Des preuves : NetBeans, JBuilder, IDEA sont crits avec Swing. Ce serait  refaire, je suis prt  parier que les dveloppeurs d'IBM auraient prfrer jouer sur le long terme, en esprant une amlioration des performances. Ils vont devoir traner SWT jusqu' la nuit des temps maintenant !

----------


## puybaret

> [...]pour des appli FULL SWT et CLEAN et non base sur des Pont et des bricollages et bidouille pour rcuprer des bout d'interfaces a et l, je n'ai jamais eu de pb sous MacOSX/GTK/Winxx ...


Et Visual Editor, c'est peut-tre pas un plugin Eclipse standard ? Pourquoi je ne pourrais pas m'en servir correctement sous mon Mac ?



> je demanderai plutot  voir une appli "correctement" crite qui aurait des pb sous MacOSX  cause de Swt!!! et pour la portabilit je vous proposerai aussi d'aller voir les forum rserver  SWING surtout en ce qui concerne les lments fortement lis  l'OS comme les boites de dialogue d'ouverture de fichier ou les messages box ... qui soient refusent de s'ouvrir soient ne s'affiche que partiellement !!!


Pour les botes d'ouverture de fichier, il suffit d'utiliser la classe FileDialog d'AWT et le tour est jou.  :;):  
Quand on prend la peine d'utiliser Swing correctement, il n'y aucun problme d'intgration au systme. Crois-moi, j'ai crit tout un bouquin o j'ai programm la mme appli en AWT/Swing et en SWT/JFace ! D'ailleurs en cherchant la petite bte, SWT fonctionne moins bien sous Mac puisqu'Apple propose des classes Java pour grer le menu application qui ne fonctionnent pas sous SWT.

----------


## octal

Je suis dsol de voir ce dbat strile tourner vers une bagare eternelle SWING vs Others ....  ::?:   j'aurai prfrer lire des post d'autres membre avec leurs exprience... 
bref ... 
J'utilise moi meme SWING pour certain projet et j'en suis trs satisfait. Croyez moi, Je ne pousse personne  passer  SWT et oublier SWING. Je veux juste dire qu'il faut viter de dnigrer SWT parce qu'on le connait pas (pas utils professionnellement).
Je n'ai jamais dnigr les qualits de SWING, relisez mon premier post, j'ai clairement dis que SWING s'amliore de plus en plus et que la vitesse est trs correcte meme sur des machine modestes, et avec la JRE5.xxx les performance ont t boustes (et je m'en rjouit, parce que j'espre que l'on va bientot profit de ces volution dans le monde de l'embarqu ... donc en version compact). Cela dit, on ne pourra jamais, avec une SURcouche destine  cach l'OS avoir les performance d'une librairie JNE utilisant directement les lib de l'OS. Java6 va peut tre changer la donne vu que le moteur graphique va utiliser une librairie PORTEE dj sur plusieurs OS et qui est OpenGL (et il parait meme que sun prvoit l'utilisation de l'acclration graphique matrielle... to be continued ... ). Ce que je veux dire c'est que ce n'est pas parce que les lib faisant partie de la JNE et interagissant avec l'OS (pour le support gui) sont fournies par SUN sur plusieurs plateformes qu'elle sont forcment meilleures que celle fournies par IBM pour le support de SWT sur le multiplateforme. SUN ne fait pas non plus de magie, pour voir SWING afficher un pixel elle fourni bien une lib native pour appeler le GDI ou GTK ou tout autre low level lib. IBM Fait pareil pour SWT. Ce n'est pas parce que ces lib sont installes avec la JRE que c'est meilleur que les lib bas niveau de SWT.  Avec un peu de bonne volont on pourrai avoir un outil d'install qui installerai le tous directement ... peut tre qu'avec le passage  l'Open Source SUN apprendra  donner du leste ... En plus SWING a pris vraiment beaucoup de temps pour murir, alors que SWT n'en ai pratiquement qu' la premire version (qui ait t utilise professionnelement).

Pour les gens d'IBM il est vrai qu'ils devront trainer les SWT, comme sun se doit de trainer la totalit de la JRE et ses lib JNE pour les diffrents OS, mais personnelement je pense que la rvolution future qui risque de changer tous ca et d'uniformiser tout cela c'est la virtualisation (surtout avec le support de la virtualisation au niveau hardware).  suivre ...

Bonne journe

----------


## puybaret

> Je suis dsol de voir ce dbat strile tourner vers une bagare eternelle SWING vs Others ....   j'aurai prfrer lire des post d'autres membre avec leurs exprience...


Hum... en relanant le dbat sur les performances de Swing vs SWT et l'intgration dans le systme de ces deux bibliothques, il ne faut pas s'tonner de la tournure que prend le dbat !  :;):  
Mais comme je l'ai dj rsum ailleurs, _la bibliothque SWT/JFace est plus simple  mettre en uvre, mais offre moins de possibilits que Swing pour personnaliser les composants d'une interface utilisateur_. Qu'en pensez-vous ?

----------


## octal

::):  je ne suis pas tonn de la tournure que ca prend ...

Question:
que voulez vous dire par "...pour personnaliser les composants d'une interface utilisateur..."?

----------


## KKI

J'utilise SWING, portabilit oblige.

Par contre, je vous conseille de regarder du cot de layouts plus riches et plus souples que les traditionnels (TableLayout, ou SpringLayout) et utiliss NetBeans  :;):

----------


## [Nean]

Je tiens  prciser ma rponse  ce sondage en disant que j'utilise Swing principalement parceque c'est le seul que j'ai essay et que je ne connais pas SWT. De plus SWING me convient plutt bien, donc pourquoi changer ?  :;):

----------


## X-plode

Tout  fait d'accords avec GLDavid

----------


## Kharneth

Salut !

Je dbute en Java et j'utilise donc les 2 pour me familiariser avec les 2 bibliothques. Pour le moment, je trouve SWT un peu plus simple d'utilisation car elle est assez similaire  la prog Win32 que je connais bien.

Ce qui m'a frapp avec SWING, c'est l'absence de contrle graphique et de la gestion de l'vnement Paint. D'aprs ce que j'ai compris, il faut hriter un nouveau composant et surcharger l'vnement Paint, ce qui est plutt lourd et peu pratique. Ou alors peut tre utiliser AWT (j'ai pas encore test mais ce n'est plus SWING dans ce cas).

Merci pour ce sondage, a rpond  quelques unes de mes questions.  ::):

----------


## unknoweb

slt !!!!!!

pour ma part j'utilise swing pourquoi ??? j'ai dbuter avec et awt je connait pas mais dja tester vite fais ........ je viens de dbuter la programmation donc voila sinon dommage que la fusion de quelques composant entre swing et awt ne ce fais pas ....... sinon JGoodies je sais pas comment l'utiliser si quelqu'un pouvais morienter ........

----------


## soft0613

Bonjour, j'ai vot SWT car je l'utilise bien plus que SWING.

J'ai auparavant dbut sur SWING mais j'ai t vite attir par SWT car je trouve qu'il est plus simple a comprendre, au niveau des constructeurs qui sont pratiquement tous du mme type (le conteneur et un int pour le style du composant) et parce que la gestion du positionnement est trs facile, je trouve que les quelques gestionnaire de placement fournis permettent vraiement de remplir facilement toutes les fonctionnalits demandes.

Ce qui est dommage c'est le manque de documentation qui existe vis--vis de l'utilisation avance de SWT/JFace compar  SWING... mais bon avec de la volont et un peu de patience on finit toujours par trouver.

----------


## eclesia

> J'ai auparavant dbut sur SWING mais j'ai t vite attir par SWT car je trouve qu'il est plus simple a comprendre


Je m'amuse en ce moment a "transcrire" des interfaces SWT vers Swing... 
... je m'amuse a la folie ... en particulier avec les equivalant des JList... ListViewer je crois.

je ne sais pas comment vous les faites les interfaces SWT, ou si ca vient de celui qui a fait celle ci en particulier. Mais c'est vraiment bizzare. Et je trouve ca de loin plus tordu que Swing.

----------


## soft0613

Moi je trouve que l'ajout automatique au parent lors de la construction est plus pratique que l'utilisation de la mthode add() par exemple, d'autant plus qu'il n'y a pas non-plus de problme avec la ncessit d'appelle  getContentPane() dans certains cas ou  l'ajout au gestionnaire de positionnement plutt qu'au composant parent (je pense au Box) en SWT si tu sais crer et postionner un compsant tu sais le faire avec tous les autres et les gestionnaires de positionnement sont d'une simplicit dconcertante pas besoin de se prendre la tte avec la vaingtaine de champs  configurer du GridBagLayout ou avec la ncessit d'utiliser un setPreferredSize() il suffit de savoir utiliser le GridLayout qui est d'une simplicit  toute preuve et tu peux crer toutes les interfaces graphiques que tu veux. 
Ce sont diverses raisons dans ce genre qui m'ont fait trouver SWT plus simple  apprendre et  prendre en main, ceci-dit SWING a une grande richesse de composants qu'SWT n'as pas encore et c'est bien dommage.

----------


## eclesia

> l'ajout automatique au parent lors de la construction


ha merci de l'info, ce n'est donc pas le gars qui code mal  ::mrgreen::  .

Pour moi ca me semble plus naturel de creer un bouton comme n'importe quel object, avec different constructeur, voir des constructeurs static. Et ensuite venir ajouter mon composant sur le JPanel. Je vois ca comme une feuille de papier qu'on "punaise" sur un panneau d'annonce, le add est logique quand on le voit comme ca.

Ce n'est pas contraignant d'avoir a spcifier le parent des la construction? ou est ce qu'on peut en changer par la suite?

----------


## soft0613

tous les Control SWT ont une mthode isReparentable() qui informe de la possibilit de modifier le parent donn  la construction, on peut donc modifier le parent de certains widgets via la mthode setParent(Composite), mais je ne saurais pas dire lesquels je n'ai jamais eu besoin de cette fonctionnalit (donc je ne trouve pas cela trs contraignant, a exige un peu plus d'organisation puisque on ne peut pas crer un Control sans lui attribuer de parent).

----------


## temoanatini

je rponds pour prciser que je n'en n'utilise pour l'instant aucun, je suis justement l pour me renseigner ::?:

----------


## Balbuzard

Swing, car je connais pas l'autre :-S

----------


## Thrain

J'utilise les 2.

J'utilise Java depuis seulement 2 ans et demi, venant du C.

J'ai commenc par utiliser SWT, d'approche plus simple. Je n'ai franchement eu aucun probleme. Puis j'ai utilise dans un deuxieme temps JFace, specifiquement pour les possibilites d'edition dans les listes.
Autant SWT est clair et facile a utiliser, autant JFace est assez "bazardeux" et surtout mal isol. Mais on n'y arrive.

Je me suis mis a Swing, dans un deuxieme temps, une fois que j'ai ete a l'aise en Java. Swing est plus difficile d'utilisation que SWT, mais beaucoup plus dans l'esprit Java. Le seul reel point faible de Swing sont ses Layout natif. Un fois que l'on a re-ecrit un GridLayout dans l'esprit de celui de SWT (il y en a plusieurs en licence libre d'ailleurs), tout va bien. Swing est largement superieur a SWT pour l'adaptabilite des widgets au besoin specifiques des applications.

Au niveau des performences, a part le JFileChooser de Swing largement plus lent que celui de SWT, il n'y a pas de probleme particulier. Swing est plus lent, oui, mais sauf cas tres specifique, l'utilisateur final ne s'en appercoit pas. En tout cas mes utilisateurs ne se sont pas appercu du passage de SWT a Swing.

Actuellement, j'ai divers cas de figure: appli utilisant que SWT, appli utilisant que Swing et enfin appli utilisant les 2. Ce qui m'a ammener a avoir des dialogues ecrit dans les 2 systemes et partageant le meme controleur, sans soucis particulier.

J'ai une preference pour Swing qui me permet une meilleur adaptabilite au besoin de mes utilisateurs, et qui est plus dans l'esprit Java. Mais franchement SWT et Swing sont 2 solutions viables, la premiere plus facile d'acces surtout si on vient de win32,  et l'autre plus customisable et plus "Java".

Dernier mot cote portabilite: ces appli tournent sous Windows et GTK. Nous avons eu des problemes de portabilite avec Swt aussi bien qu'avec Swing, mais evidement pas les memes  ::):  Une fois qu'on les connait, rien d'insurmontable.

----------


## kaniteko

*Utilisateur SWT*
Pour la simple raison que je ne trouve pas Swing trs beau et parfois un peu trop vieux.
Bon aprs je n'ai jamais essay, je ne connais que SWT...^^
Mais bon, je crois qu'il existe des L&F pour Swing, a pourrait m'intresser un jour ou l'autre.
Je trouve SWT lger, facile  manipuler (Eclipse + Visual Editor) et sympa avec le cot natif (il supporte trs bien mon thme vista sur un xp)

----------


## fr1man

Il suffit juste de ne pas laisser le look and feel par dfaut.
Aprs on ne peut plus dire que c'est moche.

----------


## JavaLilk

Moi j'ai mis SWING, mais vu que j'ai jamais utilis swt je peux pas dire lequel des 2 est le plus facile  apprhender. En revanche, mon impression sur swing, c'est qu'aprs un petit temps d'adaptation (c'est la partie de mon initiation  Java qui a t la plus dur) il est plutt intuitif, et donne rapidement des rsultats sympa  ::mouarf::

----------


## pssst

Perso j'utilise les 2. 
J'utilise SWT dans un cadre particulier (raisons professionnelles) mais je prfre malgr tout Swing

----------


## othmane126

Bonjour,
Moi je suis dbutant en java, et pour le moment je prfre apprendre les 2. Mais j'ai une petite remarque, j'ai install eclipse et Netbeans 6.5 et franchement, sur certains points eclipse est beaucoup meilleur que NetBeans. Premirement NetBeans est parfois vraiment trop long  l'excution, surtout si tu change de fentre et l'interface de NetBeans est vraiment moche par rapport  celle d'eclipse qui tourne plus vite et il est plus beau . Par contre ce qui me plait avec NetBeans c'est qu'il y a un diteur visuel c'est pour cela que je l'utilise, quant  eclipse je vois qu'il y en beaucoup qui parle de Visual Editor + Eclipse mais je ne sais pas o je peux trouver a ?!!  ::(:  ::(: 
En bref, si NetBeans est cr avec Swing a veut dire qu'il faut s'attendre  une lenteur significatif des applications et une fentre tout en violet (D'ailleurs je ne sais pas comment la modifier  ::(: ). Par contre eclipse qui est cr avec swt on voit bien le rsultat, applications plus belles  voir et qui s'excutent plus vite.

----------


## sinok

> Bonjour,
> Moi je suis dbutant en java, et pour le moment je prfre apprendre les 2. Mais j'ai une petite remarque, j'ai install eclipse et Netbeans 6.5 et franchement, sur certains points eclipse est beaucoup meilleur que NetBeans. Premirement NetBeans est parfois vraiment trop long  l'excution, surtout si tu change de fentre et l'interface de NetBeans est vraiment moche par rapport  celle d'eclipse qui tourne plus vite et il est plus beau . Par contre ce qui me plait avec NetBeans c'est qu'il y a un diteur visuel c'est pour cela que je l'utilise, quant  eclipse je vois qu'il y en beaucoup qui parle de Visual Editor + Eclipse mais je ne sais pas o je peux trouver a ?!! 
> En bref, si NetBeans est cr avec Swing a veut dire qu'il faut s'attendre  une lenteur significatif des applications et une fentre tout en violet (D'ailleurs je ne sais pas comment la modifier ). Par contre eclipse qui est cr avec swt on voit bien le rsultat, applications plus belles  voir et qui s'excutent plus vite.


Encore un qui tourne avec une version de java antidluvienne et qui ne connait pas la notion de look & feel. 

Grosso modo  l'heure actuelle niveau performances SWT et Swing c'est quasi identique. La diffrence entre les deux frameworks se fait plutt au niveau des orientations prises et des arichtectures utilises.

----------


## Golgotha

> Grosso modo  l'heure actuelle niveau performances SWT et Swing c'est quasi identique. La diffrence entre les deux frameworks se fait plutt au niveau des orientations prises et des arichtectures utilises.


Par dfinition, ce n'est pas possible.. SWT sera toujours plus performant que Swing mme si la puissance des machines permet aujourd'hui de "masquer" ce dfaut.

----------


## fr1man

> Par dfinition, ce n'est pas possible.. SWT sera toujours plus performant que Swing mme si la puissance des machines permet aujourd'hui de "masquer" ce dfaut.


Il n'y a pas de "par dfinition".
SWT utilise les composants du systme ou les dessine (comme Swing) s'ils n'existent pas. 
De plus les implmentations tant diffrentes, il a dj t montr que dans certains cas, (tableau avec beaucoup de donnes), SWT tait plus lent.

----------


## Golgotha

"Par dfinition" signifie que SWT utilise des objets natif, contrairement  Swing.

----------


## fr1man

Et je t'ai rpondu que ce n'tait pas du 100% natif, puisque les composants qui n'existent pas sur le systme sont dessins.
Voir aussi le problme des "gros" tableaux.

----------


## OButterlin

Avec SWT il y a galement la problmatique de la libration des ressources... 
Avec Swing, la question ne se pose pas vraiment...

Ceci dit, n'ayant pas essayer SWT, je ne peux pas dire lequel est mieux (si c'est le cas d'ailleurs), il me semble juste que c'est un peu naze d'utiliser un langage portable avec des bibliothques spcifiques  l'OS... pour moi, syntaxe error !

Pour Swing (a au moins je connais un peu  :;): ), on peut faire beaucoup de chose, de la  dire simplement, peut-tre pas...
Je suis d'accord avec ce qui a dj t dit, la sparation donnes/ihm est forte et sympa...
Les listener restent un rien "sac de noeuds" pour moi, et les cascades d'vnements qui sont interrompues parce que le listener du dessus c'est gaufr est franchement gonflant... (surtout pour trouver l'erreur)

Pour la rapidit... bof... mais a suffit...

----------


## Masterchief

Comme beaucoup je vote Swing!
J'y suis habitu et j'aurais beaucoup de mal  faire des application graphique en JAVA sans le Swing...
Seul problme qui a dj t voqu, la gestion avec les Layouts qui peut devenir trs difficile ds qu'on essai de crer des interfaces un tant soit peu volues.

----------


## dawadam

J'utilise uniquement Swing depuis mes dbuts en java.
Choix vident pour viter les soucis natifs et la gestion mmoire.

Mais par contre j'ai toujours trouv cela un peu lent, particulirement le JFileChooser, mais aussi les actions en gnral.

J'ai pu comparer recensement et c'est irrfutable: Swing  ce cot un peu lent et tous ceux qui disent ne pas voir la diffrence sont aveugle ou ont une machine surpuissante.

C'est pour a que je m'intresse  SWT qui a pour inconvnient principal de ncessiter plusieurs distributions, une par OS, mais est ce bien si gnant ?

--- Edit ---
J'ai dcouvert quelque chose de remarquable qui permet d'utiliser SWT sans en connaitre les rouages, c'est une espce de convertisseur Swing=>SWT instantan: SwingWT
Il suffit d'ajouter les class de SwingWT en bibliothque ainsi que SWT et de changer les importations "javax.swing" en "swingwtx.swing"
Merveilleux, la puissance de SWT et la simplicit de Swing.

----------


## michel.di

Swing pour ma part mais jamais test SWT!

----------


## rhabib

Swing , car je viens de windev  ::mrgreen::

----------


## javaNavCha

un exemple avec awt :

http://faqjava.developpez.com/?page=...oublebuffering

pour melanger awt et swing je ne croix pas que c une bonne idee raison :

http://faqjava.developpez.com/?page=graphique_general
 ::calim2::

----------


## javaNavCha

Il me semble que la principale diffrence est au niveau de l'implantation des composants.

A vrifier tout de mme.

Mais comme il l'a t dit plus haut , tu mlange toujours des composants AWT et Swing.
D'ailleurs, ne places tu pas tes composants Swing dans des layouts AWT ?

----------


## aljessy

J'arrive  mieux manier Swing que SWT. Je ne sais pas si Swing offre moins de possibilit de SWT mais vue que je n'ai aucun sourcis avec lui, je pense que le choix est vite fait

----------


## bpy1401

Bonjour   tous,

j'ai toujours eu beaucoup de problmes, aussi bien avec SWT que SWING. J'utilise plutot SWING car il est de base dans JAVA, tandis que SWT necessite des bibliothques supplmentaire.

Poour rsoudre mes problmes, principalement avec les Layout que je ne maitrise pas du tout, maintenant je fais mes interface avec Windows builder.

----------


## dawadam

> Pour rsoudre mes problmes, principalement avec les Layout que je ne maitrise pas du tout, maintenant je fais mes interface avec Windows builder.


Ah les layouts ! Toute une histoire.
Sous Swing, une fois que tu maitrise le GridBagLayout, tu te fais plaisir !
Je ne conseil pas les gnrateurs qui font beaucoup de dchet.
Ou alors il faut repasser derrire.

----------


## javaNavCha

> Personnellement, j'utilise swing car... je ne connais mme pas swt...


Il existe  l'heure actuelle deux solutions majeures d'API graphiques en Java: Swing et SWT.
Swing est une bibliothque graphique multi-plateformes dcrivant des composants graphiques complexes, compltement crits en langage Java, et ne faisant pas appel aux composants de la plateforme, ce qui le rend totalement indpendant du systme d'exploitation.
Par opposition, la stratgie de SWT repose sur l'utilisation des composants natifs de l'OS. SWT est malgr tout crit  100% en Java : les appels natifs servent uniquement  invoquer les composants de l'OS (mapping "one-to-one"). En consquence, l'implmentation de l'API SWT n'est pas multiplateforme mais l'application qui l'utilise l'est.
Ce comparatif a pour objectif de donner des lments de comparaison en faveur ou en dfaveur de chacune des solutions pour aider les dveloppeurs  choisir l'une d'entre elles. Les diffrents aspects abords sont: les performances, la portabilit, l'apparence, l'utilisation.

Performances :

Au premier abord, il est tentant de penser que la stratgie d'utilisation de composants natifs de SWT est plus performante que celle de Swing.

Pourtant, dans le cas particulier de l'affichage d'un trs grand nombre de donnes, la stratgie de SWT est handicapante. En effet, en SWT les donnes  afficher doivent systmatiquement tre copies dans les composants natifs, alors qu'en Swing elles sont utilises directement, sans recopie. De plus, l'aspect gnrique des mcanismes implments dans les viewers JFace jouent en dfaveur de l'optimisation des performances. Pour s'en persuader, il suffit simplement de crer un TableViewer JFace ainsi qu'une JTable Swing affichant tous deux quelques milliers d'lments, puis de comparer les temps de chargement.

Cependant, le plus souvent, le nombre d'lments  afficher dans un composant graphique est modr. Les donnes sont souvent filtres ou ranges dans des structures arborescentes pour rester facilement accessible  l'utilisateur. Dans ces conditions, SWT ne subit pas de pertes de performances significative.

De plus, sur une configuration matrielle moyenne, les composants natifs utiliss par SWT sont plus rapides que les composants complexes de Swing. Ceci se traduit par une meilleure rapidit de chargement des composants et surtout une meilleure ractivit aux sollicitations de l'utilisateur.

Portabilit :

La stratgie de SWT oblige l'utilisation de bibliothques natives spcifiques  l'OS alors qu'il n'y a aucune contrainte particulire en Swing. Quelle que soit l'API, l'application est portable, mais dans le cas de SWT, il faudra pralablement installer les bibliothques natives et les jars ncessaires sur le systme du client ou mettre en place un systme de chargement dynamique de ceux-ci.

Apparence :

Swing a l'avantage de permettre facilement le changement et la redfinition totale de son style par le biais des "Look'n'Feel". Ce mcanisme n'est pas possible en SWT. Les composants natifs utiliss par SWT prsentent l'avantage de ne pas drouter l'utilisateur.

Beaucoup de personnes trouvent les Look'n'Feel fournis en standard avec Swing esthtiquement moins "professionnels" que les composants natifs de Windows et ceux de GTK pour linux utiliss par SWT. Cependant, il est tout  fait envisageable de dvelopper ou d'utiliser un autre Look'n'Feel avec Swing.

Utilisation :

SWT utilisant les ressources de l'OS, le dveloppeur a la charge de les librer. Sur ce point, Swing est plus simple d'utilisation puisque l'allocation et la libration des ressources sont gres automatiquement avec le garbage collector.
Cependant, l'utilisation de SWT  l'aide d'une surcouche outil "JFace" s'avre trs simple et efficace. Les Viewers JFace permettent d'utiliser les principaux composants non-triviaux SWT par le biais de 3 notions principales qui sparent clairement les responsabilits:
 l'objet Input reprsente l'objet  afficher par le Viewer
 l'interface ContentProvider est charge de rcuprer les informations sur le contenu de l'objet Input
 l'interface LabelProvider est charge de produire le contenu graphique  afficher par le Viewer
D'aprs mon exprience personnelle, le dveloppement d'interfaces graphiques avec SWT/JFace semble plus simple, plus rapide et plus clair qu'en Swing.
De plus, SWT procure un certain nombre de composants rutilisables tels qu'un "assistant" trs apprciable dans le domaine professionnel.
De par son anciennet, l'API Swing est plus documente que SWT, mme si un gros effort a t fourni par IBM  ce sujet.

Choix :

Le choix d'une de ces deux API reste assez difficile car chacune d'elle prsente des avantages importants par rapport  l'autre. Il doit tre orient en fonction des besoins de l'application  dvelopper.
Si le nombre de donnes  afficher est important, SWT est  proscrire. Dans le cas contraire, SWT reste globalement plus performant que Swing. Sa rapidit d'excution rend les composants graphiques plus ractifs qu'en Swing et procure donc un meilleur confort d'utilisation.

Esthtiquement, Swing est plus personnalisable qu'en SWT. Ce dernier prsente l'avantage de ne pas drouter l'utilisateur en utilisant les composants natifs du systme d'exploitation.

J'ai trouv que la simplicit d'utilisation de JFace ainsi que la disponibilit de composants rutilisables permettent de dvelopper des interfaces utilisateurs assez rapidement.
La ncessit d'utilisation de bibliothques natives en SWT est incontestablement moins pratique qu'une application Swing sous forme d'un unique jar, dployable facilement et sur n'importe quelle plateforme.

Enfin, on peut souligner qu' l'heure actuelle, il est plus difficile de trouver des dveloppeurs SWT que des dveloppeurs Swing. De ce fait, le choix de SWT ncessitera souvent une formation des dveloppeurs, mme si l'API est assez simple  utiliser.

----------

