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

JavaFX Discussion :

Quelle est LA difference entre JavaFX/AWT/SWINg


Sujet :

JavaFX

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2019
    Messages : 2
    Points : 7
    Points
    7
    Par défaut Quelle est LA difference entre JavaFX/AWT/SWINg
    BOnjour si je suis là c'est pour reclammmez l'aide sur ce propos


    Veuillez m'accorder l'honneur de voir vos reponses

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    Alors :
    • Java2D : le concept qui forme la base du rendu logiciel / 100% pure Java dans AWT et Swing. Basiquement on doit dessiner de manière passive* dans une surface de rendu via un contexte (le Graphics) ; des que le dessin est effectué, le pixel est "mort" c'est dire que tu ne peux plus interagir avec : si tu as un rectangle et que tu le bouges ou change sa couleur alors tu dois demander un rafraîchissement de l'affichage et le redessiner pour que le changement apparaisse a l’écran.

      Le rendu en lui-même peut être accéléré par le système sous-jacent (ex : anciennement Direct Draw, mais de nos jours Direct 3D, Open GL), mais dispose d'un mode rendu logiciel (très lent) si le système ne propose pas le support de l’accélération.

      *c-a-d tu dois bien lister tes instructions de rendu certes, mais ce n'est pas toi qui contrôle en général le moment ou tu dois rafraîchir l'affichage: tu dois donc surcharger une méthode callback (ex : paint() ou paintComponent()) qui est invoquée par Java.
    • AWT : c'est le système de fenêtrage d'origine de Java depuis Java 1.1. Il repose sur le concept de "pair" (un composant AWT correspond a un composant natif du système d'exploitation sous-jacent. Si tu as un bouton AWT alors Java va créer un bouton natif Windows pour afficher la chose. Resp sous Linux, macOS, Solaris, etc). Ca marche bien mais souvent l'affichage est limite voir moche car ça repose sur les widgets de base des OS et certains datent d'avant les jolies UI . AWT peut aussi faire du Java 2D une abstraction de rendu un peu plus récente et qui est une manière de faire du rendu 100% Java plutôt que de passer par des pairs. Ca permet de customiser un peu plus l'affichage pour sortir de l'aspect d'origine et de faire des choses bien jolies mais avec un surcoût de boulot pour tout customiser. Il est possible de mélanger AWT et Swing sous certaines conditions. On parle de composants de poids lourd car ils sont natifs s'affichent par dessus les composants Swing quand on mélange les deux.

      Basiquement, AWT est disponible sur toutes les plateformes disposant de Java avec un affichage graphique / système de fenêtrage / système de widget graphique.
    • Swing : créé initialement par Netscape sous le nom de JFC (Java Foundation Class - un nom similaire au MFC - Microsoft Foundation Class permettant de faire de l'UI sous Windows) puis cédé a Sun et intégré dans Java depuis 1.2 sous le nom de Swing. C'est un surcouche de AWT entièrement réécrite en Java 2D donc sans pair a part les composants racines (ex : JFrame). Swing a aussi le concept de Look and Feel pour changer intégralement l'apparence des controles sans changer le code (par contre creer un nouveau LnF complet est un projet assez long). La plupart des composants Swing héritent de AWT et sont compatibles avec. Il est possible de mélanger AWT et Swing sous certaines conditions. On parle de composants de poids léger car ils sont en Java et s'affichent par-dessous les composants AWT quand on mélange les deux.

      Swing est disponible sur pratiquement tous, sinon tous les système supportant AWT puisqu'il a juste besoin d'une fenêtre native et que tout le reste du rendu est fait en Java2D.
    • JavaFX : a l'origine ça devait être une sorte de Swing 2, c'est a dire un Swing avec des méthodes de conception et fondamentaux plus modernes en laissant tomber l’héritage AWT puis au cours du développement c'est devenu un truc nouveau sans lien de parente directe avec Swing avec une architecture graphique bien plus moderne et complètement différente. De part la conception, il ressemble plus aux défunts Flash d'Adobe ou Silverlight de Microsoft ou encore a la manipulation de DOM sur le web de nos jours : c'est a dire ici que les objets sont organisés dans un graphe de scène hiérarchique sur lequel tu peux faire des manipulation qui ont un impact immédiat (comme un DOM pour une page web). Ici si tu as un rectangle et que tu le bouges ou change sa couleur alors l'affichage se met automatiquement a jour a l’écran sans que tu ais besoin de faire quoi que ce soit. Parmi les choses nouvelles totalement absentes de AWT et Swing : le binding et les collections observables ; outre le support de l'accélération graphique, JavaFX supporte la 3D ou encore les animations et meme les feuilles de style (CSS) pour changer l'apparence. Il est possible de mélanger JavaFX et Swing (mais pas AWT) sous certaines conditions.
      • 1 : Mais a un moment durant la bêta Sun a décidé de le mélanger avec un DSL (Domain-specific langage - c'est dire un langage de prog a usage restreint dans un domaine très particulier); langage de scripting qui avait été prévu pour créer des UIs pour Swing sans taper des tonnes et des tonnes de code Java (on était en plein boom des langage de script sur la JVM). Ça a donné JavaFX 1.x qui reposait sur le langage JavaFXScript (il était impossible d'utiliser JavaFX 1.x directement depuis Java).
      • 2-13 : mais les développeurs Java n'ayant pas envie d'apprendre un nouveau langage de scripting, Oracle a décidé que JavaFX 2 proposerait donc une API Java a la place qui permet d'utiliser directement le langage Java pour créer des UI FX (même si du coup le code est beaucoup plus long qu'avec JavaFXScript).

      JavaFX est disponible sur moins de système que Java2D/AWT/Swing, car son pipeline graphique est différent et doit être porté sur les autres plateformes. Il supporte principalement Windows (Direct3D), Linux x86 et macOS (OpenGL) mais aussi Linux ARM (frame buffer, bien que le support de X soit aussi d’actualité je crois) ainsi que des nouveaux iOS et Linux Android (via des pairs dans les premières version, via un port du pipeline graphique dans les prochaines versions)
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  3. #3
    Candidat au Club
    Homme Profil pro
    Responsable de coopérative agroalimentaire
    Inscrit en
    Août 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Responsable de coopérative agroalimentaire
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2015
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Bonjour,
    Je rebondis sur ce post.
    Je commence une formation de développeur.
    Est-ce encore utile de bien savoir manipuler AWT, ou peut-on faire l'impasse et aller directement sur JavaFX ?
    Merci de vos avis,

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/07/2009, 23h30
  2. Réponses: 0
    Dernier message: 21/01/2009, 10h14
  3. Réponses: 2
    Dernier message: 19/05/2007, 21h51
  4. Quelle est la difference entre MBUnit et NUnit?
    Par wrida dans le forum Framework .NET
    Réponses: 2
    Dernier message: 21/02/2007, 12h09
  5. Réponses: 5
    Dernier message: 24/05/2006, 22h14

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