IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Interfaces Graphiques en Java Discussion :

[Débutant] Choix d'une API graphique


Sujet :

Interfaces Graphiques en Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 746
    Points : 316
    Points
    316
    Par défaut [Débutant] Choix d'une API graphique
    Bonjour,

    Je débute en Java, et je voudrais commancer à m'interesser aux interfaces graphiques. En lisant la FAQ, j'ai vu qu'apparement il fallait travailler avec swing plutot que AWT.
    Pourriez vous me le confirmer?
    En sachant que pour le moment je compte faire des applications qui auront plutot un look de bureautique c'est à dire pas de grosse 3D ni rien de ce style.

    Merci bcp pour votre aide !

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut Re: [Débutant] Choix d'une API graphique
    Citation Envoyé par vallica
    Bonjour,

    Je débute en Java, et je voudrais commancer à m'interesser aux interfaces graphiques. En lisant la FAQ, j'ai vu qu'apparement il fallait travailler avec swing plutot que AWT.
    Pourriez vous me le confirmer?
    En fait AWT est la première librairie graphique de Java. Les interfaces AWT utilisent les composants du système pour créer les fenêtres, boutons, etc... Du coups les interfaces sont différentes d'un systèmes à l'autre...

    Swing est apparut avec "Java 2" (java 1.2) et permet de créer de vrai interface multi-plateforme (ie identique d'une machine à l'autre quelque soit le système) tout en gérant des LookAndFeel (possibilité de modifier l'apparence des composants...).

    De plus il me semble bien que Swing offre de meilleure performance qu'AWT...

    En fait AWT est surtout utilisé pour les applets afin de rester compatible avec l'obsolète JVM de Microsoft qui ne comportait pas Swing...


    Bon courage,
    a++

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 746
    Points : 316
    Points
    316
    Par défaut
    Ok, je me lance dans Swing alors tant que la compatibilité est bonne.

    merci pour cette réponse rapide !

  4. #4
    Membre habitué Avatar de XristofGreek
    Inscrit en
    Août 2004
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 164
    Points : 174
    Points
    174
    Par défaut
    Sinon il y a SWT qui est sans conteste la meilleure API pour ce qui est des performances. En revanche les composants utilisés sont les composants natifs de l'OS sur lequel tu es donc pas trop de possibilité pour le "look and feel".
    Pour le "Look and Feel" il y a bien une librairie graphique nomée LWVCL basée sur SWT qui existe mais je ne la trouve pas géniale, tu peux trouver des informations sur http://lwvcl.com/swt.php

    Sinon j'ai trouvé un jour un mémoire super interessant fait par des étudiants Anglais et en complétant un peu la partie graphique (basée sur SWT) on peut faire je crois quelque chose d'exceptionnel. Voici le lien de leur projet : http://www.doc.ic.ac.uk/project/2004...2341M/RelSite/

    Bon courage

  5. #5
    Rédacteur
    Avatar de lunatix
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2002
    Messages
    1 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 960
    Points : 3 738
    Points
    3 738
    Par défaut
    Citation Envoyé par XristofGreek
    Sinon il y a SWT qui est sans conteste la meilleure API pour ce qui est des performances.
    c'est discutable je pense. cela a été vrai, mais cela ne l'est plus a mon avis.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 746
    Points : 316
    Points
    316
    Par défaut
    ok je prend note, merci pour ces infos très utiles !

  7. #7
    Membre habitué Avatar de XristofGreek
    Inscrit en
    Août 2004
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 164
    Points : 174
    Points
    174
    Par défaut
    Citation Envoyé par lunatix
    Citation Envoyé par XristofGreek
    Sinon il y a SWT qui est sans conteste la meilleure API pour ce qui est des performances.
    c'est discutable je pense. cela a été vrai, mais cela ne l'est plus a mon avis.
    Tu pourrais nous éclairer stp ? pour moi AWT et SWING utilise une couche graphique pour dessiner les composants alors que SWT utilise les composants natifs donc si je ne me trompe pas sur ces points SWT est forcément plus rapide puisque cette couche graphique éxécutée dans la JVM n'existe pas pour cette technologie. Mon raisonnement n'est il pas bon ?

  8. #8
    Rédacteur
    Avatar de lunatix
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2002
    Messages
    1 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 960
    Points : 3 738
    Points
    3 738
    Par défaut
    Ton raisonnement est bon, mais depuis java4 et 5, les primitives de java2D (utilisées pour dessiner swing) sont tracées avec un binding openGL : en clair, ca se trace aussi vite que les composants natifs. (bon, pas toutes les primitives, mais suffisament, et il y en aura plus avec java6)

    Le meilleurs moyen est a mon avis de tester et de comparer : compare eclipse 3.1 et netbeans 5 sur java5 : tu verras que les performances sont equivalentes, voir penchent pour swing. Surtout sous une autre plate forme que windows car swt-gtk reste lent malgré de grosses améliorations dernierement, et swt-motif ca pique trop les yeux pour etre utilisable.

    c'est vrai que les "performances" d'une api graphique ca reste assez subjectif, et si il est vrai que au moment de l'apparition de swt, il n'y avait pas photo entre swt et swing : les choses se sont egalisées dernierement avec le gros travail de sun sur swing.

    Ceci dit, swt est pour moi une bonne API, qui est utile si on desire un look and feel parfaitement identique a celui de la plate forme.


    Un dernier point, un code "natif" n'est pas necessairement plus rapide que du code executé dans une jvm recente, car celle-ci va elle aussi compiler le byte code en code "natif" si elle estime que c'est necessaire. Elle peut meme utiliser des astuces de compilation ( par exemple inliner ) aggressivement des parties qui ne le serait pas forcement par un compilateur normal (dit ahead of time).

    Si tu es motivé, tu peux aller jeter un oeil dans la partie tutorial de la page du projet harmony http://wiki.apache.org/harmony/

  9. #9
    Membre à l'essai
    Inscrit en
    Octobre 2005
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 6
    Points : 11
    Points
    11
    Par défaut
    Un avantage de Swing, c'est qu'il propose des méthodes "raccourci" hyper pratiques qu'on utilise tous, ainsi, pas besoin de perdre du temps à les réécrire.

    Un exemple tout bête sur lequel bute tout débutant digne de ce nom :
    "Ma fenêtre ne veut pas se fermer quand je clique sur le bouton de fermeture! Pourquoi?"
    Dans AWT, il faut avoir recours à un listener qui requiert un peu de connaissances.
    Avec Swing, voilà ce qu'il faut écrire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    JFrame cadre = new JFrame("Titre du cadre");
    cadre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    En une ligne (la seconde ) on spécifie que l'application se termine si on clique sur le bouton de fermeture de la fenêtre créée.
    Dans AWT....tu peux toujours chercher.

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 746
    Points : 316
    Points
    316
    Par défaut
    C'est clair que c'est bien pratique ca, même si à terme vaut mieux se pencher sur le mécanisme des listeners.

    J'ai par contre une autre question, quand vous faites un gros projet coté GUI j'entend par la que l'interface est assez riche, est-ce que vous tapez vous même tout le code ou vous faites ca avec les outils genre le plugin VE pour Eclipse ou l'équivalence chez netbeans par exemple...

  11. #11
    Rédacteur
    Avatar de lunatix
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2002
    Messages
    1 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 960
    Points : 3 738
    Points
    3 738
    Par défaut
    la tu verras de tout ;-)
    du mec qui fait TOUT avec un designer juqu'a celui qui code tout a la main sous VI.

    perso moi je fait les panels avec un designer et j'assemble a la main en codant.

    Je crois que la bonne mehtode est celle qui te convient, il n'y a pas vraiment de regle absolue

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 746
    Points : 316
    Points
    316
    Par défaut
    ouais je verrais bien tu as raison.

    merci pour vos réponses !

Discussions similaires

  1. Conseil dans le choix d'une API
    Par valal dans le forum 2D
    Réponses: 4
    Dernier message: 23/11/2007, 03h36
  2. Choix d'une API
    Par legloups dans le forum Graphisme
    Réponses: 2
    Dernier message: 12/06/2007, 00h15
  3. [débutant] Choix d'une requêtes
    Par LhIaScZkTer dans le forum Langage SQL
    Réponses: 2
    Dernier message: 06/09/2006, 18h01
  4. [Hardware][Conseil] Choix d'une carte graphique bas de gamme
    Par Laurent Gomila dans le forum Composants
    Réponses: 3
    Dernier message: 09/11/2005, 11h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo