2008-11-12 5 views
43

Je suis principalement une personne .Net en ce moment, mais j'ai récemment joué avec Java - explorer ce qui existe.Quelle est la réponse de Java à WPF?

Maintenant, je cherche l'équivalent Java pour WPF. Je sais que je pourrais trouver une bibliothèque OpenGL ou deux là-bas, mais ce n'est pas aussi riche ou simple que le système WPF.

Répondre

35

Je pense une combinaison de JavaFX, Swing, Java2D et JRE base de navigateur Java comprennent les solutions qui WPF fournit:

  • applications JavaFX (en fait, toute application Java) peut fonctionner dans le navigateur ou sur un bureau
  • JavaFX fournit un support vidéo haut de gamme
  • JavaFX prévoit des animations scriptées et des effets spéciaux visuels
  • swing fournit des capacités de l'interface utilisateur, et peut être utilisé dans Java et JavaFX
  • Java2D, qui fournit les fondements pour toutes les tâches de dessin (y compris Swing), profite de l'accélération matérielle et support DirectX
  • JRE sur le bureau ou le navigateur permet aux applications Java d'être déployées dans plusieurs environnements (y compris d'autres écrans, comme décodeurs ou téléphones)
+3

JavaFX semble prometteur. –

+1

Pas de véritable support 3D, en particulier pour le langage de shader trouvé dans DirectX HLSL et OpenGL SL. De plus, tout support IDE existant pour JavaFX ne peut pas correspondre à la puissance du concepteur Expression Blend XAML et de Visual Studio 2008 et Visual Studio 2010 Cider (concepteur WPF dans Visual Studio). –

+3

Gère-t-il la liaison de données aussi facilement? –

17

WPF est plus complet que n'importe quel JavaFX, Swing, AWT ou Java2D. C'était l'objectif de conception après tout, de mettre tout ce qui était en relation avec la présentation dans une seule bibliothèque. Côté performance, ils sont à peu près les mêmes à l'exception de l'utilisation de la mémoire où Java est une hungry hog

17

J'ai programmé Aqua, Macintosh Quick Draw, Windows GDI et GDI +, Qt et .NET WinForms et WPF est par loin l'API la plus sophistiquée que j'ai utilisée. Bien qu'il dispose d'un ensemble de fonctionnalités assez performant qui soit meilleur que les technologies précédentes, telles que le swing, WPF ne correspond pas à la norme. Il résout certains problèmes majeurs qui ont affecté la programmation graphique. Si vous venez du monde HTML/JS, il est facile à apprendre, mais si vous venez du monde de la programmation graphique traditionnelle, c'est un changement de paradigme majeur. Peu importe, c'est beaucoup plus facile à apprendre que CSS/HTML/JS. C'est une rupture nette par rapport aux concepts hérités qui affectent d'autres environnements de programmation graphique.

La plus grande force de WPF est qu'il est indépendant de la résolution. Il peut évoluer sur plusieurs appareils avec peu ou pas de modifications. Il nécessite peu de travail pour prendre une version d'écran d'un dessin et la sortir sur une imprimante haute résolution sans perte de résolution.

Il prend également en charge le déclenchement d'événement. Les éléments de l'interface utilisateur peuvent répondre aux événements d'autres éléments de l'interface utilisateur ou au code de votre application, ce qui rend les interfaces dynamiques possibles. Il est facile de séparer votre code de l'interface utilisateur d'une manière que même HTML/JS ne peut pas atteindre. Les éléments peuvent diffuser et écouter des événements et répondre en conséquence.

Une autre force est son API hautement orientée objet et déclarative. En utilisant XAML, vous pouvez facilement construire une interface de travail rapidement et efficacement avec quelques lignes. Contrairement à HTML/JS, il est plus facile à apprendre et sa sortie est beaucoup plus prévisible et efficace. Vous pouvez même programmer WPF complètement en code, mais cela ne vaut généralement pas le gain de performance mineur. Une meilleure méthode consiste à compiler votre Xaml en code .NET.

En outre, l'outillage disponible pour WPF est très étendu par rapport à JavaFX. Il y a des tonnes d'outils comprenant le mélange d'expression disponible. Il existe également de nombreux outils pour prendre des formats graphiques vectoriels tels que SVG et Adobe Illustrator et les convertir en XAML.Maintenant, les concepteurs et les programmeurs peuvent collaborer sur la publication assistée par ordinateur d'une manière qui était très difficile à faire auparavant. En résumé, WPF est si complet que l'équipe Mono a choisi de ne pas le porter sur la base du code Mono. Ils ont affirmé qu'il faudrait beaucoup d'années-hommes pour mettre pleinement en œuvre un ensemble de fonctionnalités raisonnables. Si une version compatible avec Mono de WPF existait, cela ferait de .NET le framework d'application multiplateforme de facto. En fait, il peut même remplacer HTML/CSS, car il est beaucoup plus puissant et plus facile de se faire une idée. Malheureusement, Microsoft n'a pas vu de business case pour un WPF compatible multiplateforme. C'est pourquoi SilverLight/WPF a perdu en HTML5/JS. Grâce à cette erreur, ils sont maintenant obligés de passer non seulement le web mais une partie de leur bureau à HTML 5/JS.

+0

Merci pour la réponse détaillée! – Vova

+0

Grosse erreur de Microsoft. – TheMentor

+1

WPF est seulement pour les cerveaux, pas pour les gens de QI moyen comme moi. Il est temps de passer à Open source. – AnjumSKhan

Questions connexes