qual è la differenza tra l'applicazione desktop java e javafx?


Qual è la differenza tra un'applicazione desktop Java "normale" (con AWT o Swing) e un'applicazione Java creata con JavaFX?

Quali sono i vantaggi e gli svantaggi di ciascuno?

Author: MultiplyByZer0, 2010-08-09

4 answers

Penso che quello che stai chiedendo sia quali sono i pro e i contro della creazione di un'applicazione desktop JavaFX rispetto a un'applicazione desktop Java Swing. Dopo aver sperimentato con entrambi posso sottolineare alcune differenze:

Java Swing

Pro:

  • Migliore visual designer e supporto IDE
  • Più set completo di controlli
  • Ottimo per la creazione di applicazioni aziendali come interfacce utente su un database in cui non sono necessarie funzionalità oltre i controlli standard (e di terze parti).

Contro

  • Scarso supporto multimediale
  • Creare controlli personalizzati o skin personalizzate è molto difficile
  • Nessun supporto per l'animazione
  • La sintassi Java può essere scomoda per la creazione di interfacce utente. L'IDE rende questo meno un problema, ma se devi mai fare qualcosa manualmente può diventare brutto.

JavaFX

Pro

  • Supporto multimediale decente
  • Facile da costruire controlli personalizzati, e tutti i controlli esistenti sono personalizzabili usando i CSS(non ho ancora provato i CSS).
  • Il supporto per l'animazione è buono - non abbastanza buono come flash, ma è abbastanza buono per le animazioni di base.
  • La sintassi sembra più adatta per costruire interfacce utente, specialmente per codificarle a mano - il che è positivo perché dovrai codificarle a mano.
  • Ottimo per la creazione di applicazioni multimediali o applicazioni in cui è necessario un look personalizzato.

Contro

  • La visuale designer ha bisogno di lavoro, e personalmente non lo uso. Questo può essere un grande negativo a seconda delle vostre esigenze.
  • Manca ancora in alcuni controlli, ma questo sta migliorando. I controlli che esistono sembrano funzionare bene.
  • L'integrazione Swing esiste, ma stanno lavorando per cambiare il motore in modo che non si basi più su Swing. Non è chiaro quanto bene l'utilizzo dei controlli Swing di JavaFX funzionerà in futuro. Quindi non eviterei l'uso di controlli Swing in JavaFX quando possibile.
 14
Author: Praeus, 2014-07-23 10:42:03

JavaFX sta migliorando più velocemente e diventando migliore da usare rispetto a Swing.

JavaFX è un framework per la GUI con diversi vantaggi, tra cui animazioni e integrazione CSS. Questo può aiutare a creare molte cose 2D e quasi 3D che puoi vedere in CSS3.

JavaFX è Java puro, quindi non è necessario imparare un'altra lingua diversa dal buon vecchio Java che conosci. JavaFX è la mia piattaforma GUI preferita per desktop ed enterprise e uso Swing solo quando si tratta di applicazioni meno recenti ambienti (cioè integrazione con l'hardware). L'unico svantaggio che conosco è che il generatore di scene non è ancora integrato e l'utilizzo dei controlli e dell'API richiede un lavoro cerebrale, ma questo è minore.

Per me non c'è differenza tra Java desktop e JavaFX poiché JavaFX può essere utilizzato per sviluppare app desktop, app aziendali e applet. È possibile esaminare le versioni JavaFX correnti per verificare le sue capacità.

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

Non è una situazione di svantaggio/vantaggio tanto quanto capire cosa ciascuno può fornire e il vecchio detto "usa lo strumento giusto per il lavoro".

Risposta da yahoo answers Fonte per questa risposta:

JavaFX è in realtà un linguaggio diverso (sintassi simile, ma diversa), ma funziona su una JVM e può utilizzare classi Java. Sviluppato principalmente per " RIA " (rich Internet applications), attraverso una varietà di dispositivi. Un bel paio di funzionalità integrate per lo sviluppo di fantasia & interfacce utente appariscenti, senza tutta la digitazione che si deve fare in un linguaggio più nuts-n-bolts (di basso livello) come Java.

In realtà, è un po ' difficile "confrontare"; JavaFX sfrutta tutti i vantaggi di Java e costruisce una piattaforma su di esso per lo sviluppo di RIA.

  • JavaFX richiede una JVM; ma avere solo Java non significa avere JavaFX.
  • quindi, JavaFX non è intrinsecamente una parte di Java.
  • qualsiasi piattaforma che non supporta Java non supporta quindi JavaFX (....ad esempio, iPhone, iPad) yet ancora.
  • si noti che anche l'iPhone e l'iPad non supportano Flash, un concorrente simile in questo spazio. (...Forse Flex o Silverlight sono esempi migliori di tecnologie concorrenti....)

Sorgente):
Javafx wikiepdia
javafx a colpo d'occhio
home page di javafx domanda simile di stackoverflow

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

La classe JTable è un altro componente Swing che non ha equivalenti in AWT. JTable offre una possibilità molto flessibile per creare e visualizzare tabelle. Consente di creare tabelle da array o vettori di oggetti o da oggetti che implementano l'interfaccia TableModel.

L'interfaccia JTableModel definisce i metodi per gli oggetti che specificano il contenuto di una tabella. La classe fornisce un'implementazione AbstractTableModel l'interfaccia predeterminata JTableModel. Questa classe è in genere estesa per fornire un'implementazione personalizzata della tabella del modello. La classe JTable offre la possibilità di modificare le tabelle. il metodo setCellEditor () consente un oggetto dell'interfaccia è TableCellEditor identificato come le celle della tabella editor.

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