10 Différences entre JavaFX et le swing

Si vous êtes un programmeur Java expérimenté, vous avez sans doute travaillé avec Swing créer des interfaces utilisateur. Oracle n'a pas complètement abandonné Swing - il est pas obsolète, et les applications Swing continuer à travailler. Mais aucun travail est fait plus pour améliorer Swing, et Oracle a clairement fait savoir que JavaFX est l'avenir.

Sommaire

Voici dix différences fondamentales entre JavaFX et Swing.

Dans JavaFX, le monde entier est une scène

Dans Swing, la classe qui détient vos composants d'interface utilisateur est appelé cadre et est définie par la JFrame classe. Un cadre est essentiellement une fenêtre vide à laquelle vous pouvez ajouter un panneau, qui sert comme un conteneur pour vos éléments d'interface utilisateur. Un groupe est défini par le JPanel classe.

Une application Swing est en fait une classe qui étend la JFrame classe. Pour afficher les composants de l'interface utilisateur, vous ajoutez des composants à un JPanel et puis ajouter le panneau sur le châssis.

JavaFX utilise la métaphore d'un théâtre pour modéliser les conteneurs de haut niveau d'une application. UN étape (définie par la Stade classe) représente le conteneur de plus haut niveau - généralement, une fenêtre, mais sur certains systèmes d'exploitation, la scène peut représenter la surface d'affichage entière. Les commandes individuelles et d'autres composants qui constituent l'interface utilisateur sont contenus dans un scène (définie par la Scène classe). Une application peut avoir plus d'une scène, mais seulement l'une des scènes peut être affichée sur la scène à un moment donné.




Une scène contient une graphe de scène, qui est le concept le plus important dans JavaFX. Le graphe de scène est une collection de tous les éléments qui composent une interface utilisateur - des groupes, des dispositions, des contrôles et des formes. Ces objets sont appelés nœuds et sont toutes dérivées de la Noeud classe. La Noeud classe possède de nombreuses fonctionnalités utiles et les capacités qui sont automatiquement mis à la disposition tout objet que vous pouvez ajouter à votre interface utilisateur. Par exemple, la Noeud classe définit une setRotate méthode qui vous permet de faire pivoter un nœud dans le graphe de scène.

Dans JavaFX, gestionnaires de disposition sont des noeuds

Dans Swing, une mise en page est associée à une JPanel. Le haut niveau JPanel offre une structure de base pour le cadre. Si vous voulez imbriquer des dispositions supplémentaires dans la mise en page de niveau supérieur, vous devez créer supplémentaires JPanels, fixer leurs schémas associés, puis les ajouter à la mise en page de niveau supérieur.

Dans JavaFX, mises en page sont sous-classes de la Noeud classe tout comme les contrôles et les formes. Mises contiennent une collection de noeuds, et tout noeud contenue dans une mise en page peuvent être tout type de noeud: un contrôle, une forme ou une autre disposition. Ce système est beaucoup moins encombrant que l'association Swing de mises en page avec des panneaux.

JavaFX a amélioré la gestion des événements

Les deux JavaFX et l'utilisation Swing gestion des événements pour répondre aux événements d'entrée d'utilisateur. Cependant, vous trouverez que les événements en JavaFX sont mieux pensé et plus cohérent que leurs équivalents dans Swing. Mais la plus grande manipulation de l'événement de la raison est améliorée dans JavaFX est en raison de sa dépendance sur les propriétés.

JavaFX supporte les propriétés

JavaFX soutient les concepts de propriétés et utilise les propriétés abondamment tout au long de ses classes. Autrement dit, une propriété est une variable dont la valeur peut être observé. Vous pouvez enregistrer un écouteur avec toute propriété, vous permettant d'écrire du code qui est déclenché automatiquement lorsque les changements de propriété. En outre, vous pouvez lier propriétés à l'autre, ce qui signifie que si des changements de la valeur d'une propriété de, l'autre valeur de la propriété change automatiquement avec elle.

Parce que presque toutes les caractéristiques des éléments d'interface utilisateur sont gérés par des propriétés, JavaFX fournit la gestion d'événements qui est du jamais vu dans Swing. Par exemple, dans JavaFX, vous pouvez attacher un écouteur d'événement à la couleur d'une forme. Si la forme change de couleur, votre code d'écouteur d'événement est exécuté. Vous ne pouvez pas avoir une utilisation pour la capacité, mais vous pouvez l'utiliser si vous avez besoin.

JavaFX est skinnable avec CSS

Une des meilleures caractéristiques de JavaFX est que vous pouvez contrôler le formatage avec Cascading Style Sheets (CSS). Juste au sujet de tous les aspects de l'apparence de votre interface utilisateur peut être défini par une règle de style, et vous pouvez facilement permettre à l'utilisateur de sélectionner lequel de plusieurs feuilles de style disponibles à appliquer à la scène. Ainsi, vous pouvez changer l'apparence entière de votre application avec un seul appel de méthode.

JavaFX a des contrôles plus réguliers

En général, vous verrez que la hiérarchie de commande JavaFX est plus complète que de swing. Les deux ont toutes les commandes de base - boutons, cases à cocher, zones de liste déroulante, et similaires. Mais JavaFX a plusieurs commandes intéressantes ce swing n'a pas, comme le pliable TitledPane le contrôle et la Accordéon contrôle qui organise multiples TitledPane contrôle dans une pile. Et le fait que tous ces contrôles sont skinnable par CSS leur donne un énorme avantage sur Swing.

JavaFX a des effets spéciaux

La javafx.scene.effect paquet contient un certain nombre de classes qui peuvent facilement appliquer des effets spéciaux à tout nœud dans le graphe de scène. Ces classes vous permettent d'appliquer facilement ombres, des reflets, des flous et autres effets visuels intéressants qui peuvent transformer l'apparence de votre interface utilisateur.

L'animation est plus facile dans JavaFX

L'animation est possible dans Swing, swing, mais ne fournit pas de soutien direct pour elle. Pour animer un composant Swing, vous devez configurer vos propres compteurs et de construire votre propre logique pour effectuer l'animation.

En revanche, JavaFX a un support intégré pour les animations sophistiqués qui peuvent être appliqués à n'importe quel noeud dans le graphe de scène. Vous pouvez utiliser l'une des nombreuses classes de transition intégrée pour effectuer des animations communes telles que les fondus, les rotations, ou trajectoires. Ou, vous pouvez utiliser la KeyFrame et Chronologie classes pour configurer facilement des animations personnalisées.

JavaFX supporte les périphériques tactiles modernes

Balançoire manque aucun soutien pour les appareils tactiles modernes. En revanche, JavaFX a un support intégré pour les gestes tactiles communes telles que le défilement, glisser, tourner, et le zoom. La manipulation de ces événements dans JavaFX est aussi facile que la manipulation de tout autre type d'événement: Vous installez simplement un écouteur d'événement sur l'événement tactile, puis écrire du code qui répond de façon appropriée.

JavaFX n'a ​​pas d'équivalent à JOptionPane

Il ne serait pas juste pour remplir complètement cette liste de dix différences avec les points qui favorisent clairement JavaFX. Voici un ennui mineur de JavaFX: Il n'a pas d'équivalent intégré de Swing JOptionPane classe, ce qui est très pratique pour afficher de courts messages d'alerte ou d'obtenir simple saisie de l'utilisateur. Dans JavaFX, vous devez façonner votre propre équivalente à cette classe utile.


» » » » 10 Différences entre JavaFX et le swing