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?
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.
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à.
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
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));
}
}