2009-09-29 14 views
11

La maggior parte dello sviluppo di applicazioni desktop che faccio è in Swing, e sono curioso di ascoltare le opinioni delle persone sull'uso di JavaFX e/o Adobe Flex per la creazione di applicazioni desktop. Hai avuto successo nel creare app desktop con questi? O per ora ti attacchi con Swing e usi gli strumenti per contribuire a rendere lo sviluppo di Swing più produttivo?JavaFX, Swing o Flex per applicazioni desktop Java

+1

Um, Flex non è una tecnologia Java. – cletus

+1

Cosa intendi con questo? Adobe Flex ... –

+0

Adobe Flex è scritto in ActionScript/MXML e viene compilato in un componente Flash. Può * comunicare * con un backend Java - ma può dialogare con un back-end scritto in qualsiasi lingua, purché possa parlare con AMF, REST o le interfacce dei servizi web. – Nate

risposta

19

Se stai facendo app desktop, mi attengo a Swing. JavaFX/Flex/Silverlight sarebbe più appropriato per le app Internet ricche di RIA. Anche se direi che nessuno di loro sarebbe una scelta a lungo termine - mi sembra che HTML5/CSS3/Ajax stiano vincendo la giornata, ma questo è un aspetto piuttosto soggettivo. Ma per le app desktop - Sono un grande fan di Swing (anche Java Web Start è una tecnologia sottovalutata)

+0

+ 1, Bella risposta e sono d'accordo con la maggior parte, tranne che dovrebbe attenersi a Swing. Ad esempio, Swing non è molto avanzato rispetto a .NET. Vorrei provare JavaFX. – Igor

10

Direi che JavaFX può essere visto come una sorta di estensione di Swing con un nuovo modo di sviluppare un GUI Java utilizzando un linguaggio di programmazione dichiarativo: lo script JavaFX. Il codice JavaFX Script sembra esattamente come uno script JSON, diversamente da Adobe Flex o Microsoft Silverlight che utilizza una sintassi XML.

JavaFX Script può interfacciare con Java e pertanto può richiamare facilmente i componenti di Swing. È davvero una nuova generazione di API GUI, come Swing era per AWT: componenti grafici carini, nuovi modi facili per gestire i layout, caratteristiche davvero carine per costruire interfacce dinamiche: binding, timer (per costruire animazioni), ecc. Dai un'occhiata qui: http://www.javafx.com/samples/ e alle esercitazioni e scopri quanto velocemente puoi creare una specie di applicazione Google Picasa ... L'API contiene anche alcuni strumenti per utilizzare facilmente i servizi web: puoi trovare molti esempi di GUI integrata in JavaFX collegata ad alcuni servizi web pubblici (come uno strumento di previsioni meteorologiche).

E il migliore ... è la parte di implementazione. Puoi incorporare la tua applicazione in una pagina html, come un'applet, e l'utente può trascinare e rilasciare l'applicazione sul suo desktop per utilizzarla ogni volta che desidera (senza tornare al suo browser)!

In realtà, penso che JavaFX, nella fase iniziale (v1.2), sia uno strumento davvero valido e rappresenti il ​​primo passo per Java verso la prossima generazione di applicazioni: la Rich Internet Applications (RIA).

1

Si consiglia di provarli tutti e vedere quale si adatta meglio alle proprie esigenze. Se vuoi vedere cosa puoi fare con Flex e come farlo, dai un'occhiata allo Tour de Flex.

Alcuni dei vantaggi di Flex sono che è maturo (oltre 5 anni ora) e una significativa area di investimento per Adobe. È inoltre possibile trovare numerosi esempi di app AIR create con Flex nello Adobe AIR Marketplace.

1

swing può guardare bene con la sostanza L & F.

Tuttavia, se si sta sviluppando da solo (al contrario di una squadra), cercando di JavaFX potrebbe essere una buona idea.

2

Java Swing è una tecnologia consolidata e matura per lo sviluppo desktop. Sarai in grado di trovare molte informazioni online e un sacco di programmi di esempio. Detto questo, tuttavia, potresti prendere in considerazione Adobe AIR. AIR è fondamentalmente un runtime che ti consente di eseguire le tue app Flex sul desktop e dà loro accesso a risorse locali come il file system. Ho scritto app di Java Swing per 10 anni e sono stupito di quanto sia più produttivo usare Flex/Adobe AIR. Un aspetto interessante di Flex è che puoi creare le tue GUI in modo dichiarativo, proprio come usare l'HTML per dichiarare il layout di una pagina web. È un modo molto più conciso per specificare una GUI e, molto più veloce e più facile da gestire rispetto alle risme del codice Java Swing, è necessario fare la stessa cosa. Non consiglierei JavaFX poiché è così tardi per la festa e non è stato davvero ottenuto con gli sviluppatori mainstream.

1

Si prega di leggere il this circa, scrivere applicazioni swing estremamente leggero e con la stessa base di codice spostarlo sul web.

+0

Si prega di aggiungere le informazioni rilevanti da questi collegamenti. I collegamenti hanno l'abitudine di essere spostati o cancellati, se questo accade, la tua risposta diventa inutile. – Mike

0

avevo valutato questi per applicazioni desktop e, infine, desided di andare per JavaFX. Questo ha un ottimo media library e capacità grafiche e multimediali accelerate dall'hardware. Con Jdk 7, l'aggiornamento 6 in poi contiene JavaFx totalmente integrato senza necessità di installazione separata. Java swing è una tecnologia molto buona e verrà proseguito, ma vedo che JavaFx è in futuro il futuro della GUI e dell'applicazione Internet. Il più grande vantaggio per me era che JavaFX app potrebbe essere convertito in exe file con native packaging

Anche provare scenebuilder per il drag and drop dei componenti di design

0

sento che non ho abbastanza informazioni per rispondere a questa domanda. Esistono molte applicazioni in cui un approccio AIR è una scelta migliore, altre applicazioni utilizzano meglio altre tecnologie. Sono principalmente uno sviluppatore AS3/Flex, ma so che ci sono molti casi in cui una delle piattaforme Java è una scelta migliore. Ora che Flex non è più un prodotto Adobe, ma piuttosto un prodotto Apache, migliorerà il prodotto man mano che gli utenti creeranno la roadmap o elimineranno completamente il prodotto.