quelle est la différence entre l'application de bureau java et javafx?


Quelle est la différence entre une application de bureau Java "normale" (avec AWT ou Swing) et une application Java construite avec JavaFX?

Quels sont les avantages et les inconvénients de chacune?

Author: MultiplyByZer0, 2010-08-09

4 answers

Je pense que ce que vous demandez est quels sont les avantages et les inconvénients de la construction d'une application de bureau JavaFX par rapport à une application de bureau Java Swing. Après avoir expérimenté les deux, je peux souligner quelques différences:

Java Swing

Avantages:

  • Meilleur concepteur visuel et support ID
  • Ensemble de contrôles plus complet
  • Bon pour créer des applications métier telles que des interfaces utilisateur au-dessus d'une base de données où vous n'avez pas besoin de capacités au-delà les contrôles standard (et tiers).

Contre

  • Mauvaise prise en charge multimédia
  • Bâtiment contrôles personnalisés ou des skins personnalisés est très difficile
  • Aucun support d'animation
  • La syntaxe Java peut être gênante pour la construction d'interfaces utilisateur. L'E rend cela moins problématique, mais si jamais vous devez faire quoi que ce soit manuellement, cela peut devenir moche.

JavaFX

Avantages

  • Support multimédia décent
  • Facile à construire des contrôles personnalisés, et tous les contrôles existants sont skinnable en utilisant CSS (je n'ai pas encore essayé CSS cependant).
  • Le support de l'animation est bon - pas aussi bon que flash mais assez bon pour les animations de base.
  • La syntaxe semble mieux adaptée à la construction d'interfaces utilisateur, en particulier pour les coder à la main - ce qui est bien car vous devrez les coder à la main.
  • Bon pour créer des applications multimédias ou des applications où vous avez besoin d'un look personnalisé.

Contre

  • Le visuel le concepteur a besoin de travail, et personnellement je ne l'utilise pas. Cela peut être un gros point négatif en fonction de vos besoins.
  • Manque encore de certains contrôles, mais cela s'améliore. Les contrôles qui existent, semblent bien fonctionner.
  • L'intégration Swing existe, mais ils travaillent à changer le moteur afin qu'il ne repose plus sur Swing. Il est incertain dans quelle mesure l'utilisation des contrôles Swing de JavaFX fonctionnera à l'avenir. Donc, je n'éviterais pas l'utilisation de contrôles Swing dans JavaFX quand possible.
 14
Author: Praeus, 2014-07-23 10:42:03

JavaFX s'améliore plus rapidement et devient meilleur à utiliser que Swing.

JavaFX est un framework pour l'interface graphique avec plusieurs avantages, y compris les animations et l'intégration CSS. Cela peut aider à créer beaucoup de choses 2D et presque 3D que vous pouvez voir dans CSS3.

JavaFX est du Java pur, vous n'avez donc pas besoin d'apprendre une autre langue que le bon vieux Java que vous connaissez. JavaFX est ma plate-forme GRAPHIQUE préférée pour le bureau et l'entreprise, et je n'utilise Swing que lorsque je traite avec une ancienne application environnements (c'est-à-dire intégration avec le matériel). Le seul inconvénient que je connais est que le générateur de scène n'est pas encore intégré, et l'utilisation des contrôles et de l'API nécessite un travail cérébral, mais c'est mineur.

Pour moi, il n'y a pas de différence entre Java desktop et JavaFX car JavaFX peut être utilisé pour développer des applications de bureau, des applications d'entreprise et des applets. Vous pouvez consulter les versions actuelles de JavaFX pour vérifier ses capacités.

 4
Author: Kwesi Aryee, 2017-05-20 19:34:17

Ce n'est pas une situation d'inconvénient/avantage autant que de comprendre ce que chacun peut fournir et le vieil adage "utilisez le bon outil pour le travail".

Réponse de réponses yahoo Source pour cette réponse:

JavaFX est en fait un langage différent (syntaxe similaire, mais différente), mais il fonctionne sur une JVM et peut utiliser des classes Java. Principalement développé pour " RIA " (rich Internet applications), sur une variété d'appareils. Quelques fonctionnalités intégrées pour développer fantaisie & interfaces utilisateur flashy, sans tout le typage que l'on a à faire dans un langage plus nuts-n-bolts (bas niveau) comme Java.

Vraiment, c'est un peu difficile de "comparer"; JavaFX exploite tous les avantages de Java et construit une plate-forme dessus pour développer RIA.

  • JavaFX nécessite une JVM; mais avoir Java ne signifie pas que vous avez JavaFX.
  • ainsi, JavaFX n'est pas intrinsèquement une partie de Java.
  • toute plate-forme qui ne prend pas en charge Java ne prendrait donc pas en charge JavaFX (....c'est à dire, iPhone, iPad) - pas encore.
  • notez que l'iPhone et l'iPad ne prennent pas non plus en charge Flash, un concurrent similaire dans cet espace. (...Flex ou Silverlight sont peut-être de meilleurs exemples de technologies concurrentes....)

Source(s):
Javafx wikiepdia
javafx en un coup d'œil
javafx la page d'accueil de question similaire de stackoverflow

 2
Author: Chris, 2017-05-23 12:34:50

La classe JTable est un autre composant Swing qui n'a pas d'équivalent dans AWT. JTable offre une possibilité très flexible de créer et d'afficher des tables. Permet de construire des tables à partir de tableaux ou de vecteurs d'objets ou à partir d'objets qui implémentent l'interface TableModel.

L'interface JTableModel définit des méthodes pour les objets qui spécifient le contenu d'une table. La classe fournit une implémentation AbstractTableModel l'interface prédéterminée JTableModel. Cette classe est généralement étendue pour fournir une implémentation personnalisée de la table de modèle. La classe JTable offre la possibilité d'éditer des tables. la méthode setCellEditor () permet à un objet de l'interface est TableCellEditor identifié comme les cellules de la table de l'éditeur.

import java.awt.*; 
import javax.swing.*; 
import javax.swing.table.*; 
public class JavaExampleTableInJApplet extends JApplet 
 { 
    Object[] Dt = new Object[5]; 
    DefaultTableModel DfltTblModl = new DefaultTableModel(); 
    JTable Tbl = new JTable(DfltTblModl); 
    public void init() 
     { 
        for(int clmn = 0; clmn < 5; clmn++) 
           { 
             DfltTblModl.addColumn("Column"+clmn); 
           } 
             for(int row = 0; row < 10; row++) 
             { 
                     for(int clmn = 0; clmn < 5; clmn++) 
                  { 
                          Dt[clmn] = "Cell " + row + "," + clmn; 
                      } 
                          DfltTblModl.addRow(Dt); 
                 } 
                    getContentPane().add(new JScrollPane(Tbl)); 
      } 
  } 
 0
Author: user3093583, 2015-01-27 05:23:41