2009-05-27 6 views
9

Dopo aver dedicato molto tempo e codice alla programmazione in Swing, ho pensato che questo non potesse essere un vero e proprio edificio per la GUI Java. Dopo non aver trovato un gui bilder visual user-friendly per eclipse mi sono imbattuto in una GUI dichiarativa che costruiva con i toolkit XML dell'interfaccia utente ... e ho pensato: deve essere così! Penso che sia la strada giusta da percorrere, facile e vicina alla programmazione web.XML o XUL sono il futuro della costruzione della GUI Java?

Ma dopo aver guardato nel web e su SO, ho avuto l'impressione che non sia molto comune! Sebbene ci siano molte implementazioni e API, sembra che la maggior parte di loro sia morta e non abbia avuto aggiornamenti negli ultimi 5 anni ..

Quindi mi chiedo: ho ragione, l'XML non è molto diffuso per java GUI? E se è così - quali sono le ragioni? Forse non potrebbe essere accettato o ha alcuni grossi inconvenienti o le persone stanno facendo tutto nel web invece con i fatclients o ci sono alternative migliori, forse javafx?

Ho solo bisogno di sapere se vale la pena passare del tempo in quella zona o cercare meglio modi alternativi. Non leggendo le riviste di sviluppo, non so quali sono le tendenze nella costruzione di gui e quali tecnologie si ritiene abbiano un futuro. Ma non riesco a immaginare che le persone passino ancora così tanto tempo a scrivere app di swing (o swt) sgradevoli.

+0

Si dovrebbe considerare l'utilizzo di NetBeans per la costruzione della GUI. Ha sempre funzionato molto bene per me, anche il passaggio da IDE non è poi così male. – willcodejavaforfood

risposta

3

La risposta di Sun a questo sembra essere JavaFX.

Ha un linguaggio dichiarativo per specificare la GUI e ci saranno anche applicazioni per builder.

+1

JavaFX è un linguaggio imperativo standard di bog, non in realtà un linguaggio dichiarativo. Quello che ha è il supporto sintattico per impostare un carico di proprietà al momento dell'inizializzazione (più binding). –

+0

Ho appena dato un'occhiata più approfondita a JavaFX e dà una buona impressione. i controlli di base sono implementati con codice molto minore. i collegamenti sono convenienti e insieme a css-styling e grafici e ai prossimi strumenti di authoring è qualcosa su cui passerò sicuramente più tempo! –

+0

Stavo indagando su JavaFX 2.0 ed ero piuttosto soddisfatto del prodotto fino a quando ho visto che supportano solo Windows. http://javafx.com/faq/#5 –

0

La risposta non sarà sicuramente XML. Che problema stai cercando di risolvere? Vuoi avere blocchi predefiniti riutilizzabili e un modo compatto di descriverli. Non vedo XML che ti aiuti lì.

[modifica] La creazione di un codice java equivalente a XUL sarebbe un miglioramento immenso per XUL. XML rende davvero, davvero difficile fare una buona separazione delle preoccupazioni e una sola volta. È comunque perfetto per l'approccio delle orde di Mongolia. Hai bisogno di uno strato sopra l'altalena, fornisce solo i mattoni.

+0

è solo che penso che la codifica degli swing sia cattiva. Mi piace il design strutturato e gerarchico dei documenti xml e la netta separazione tra funzionalità, struttura e design. personalmente penso che sia meglio leggere. e a giudicare da quello che ho visto su xul, aveva bisogno di molto meno codice di swing. –

0

Vorrei suggerire Thilos con javaFX. Inoltre, la tendenza punta alle webapp, quindi penso che a lungo termine javaFX e le interfacce utente basate sul web raggiungeranno le GUI swing + swt.

1

Cinque a dieci anni fa XML era molto popolare. Sebbene sia adatto a fornire una sorta di standardizzazione per il trasferimento di dati tra sistemi eterogenei, non è adatto per la programmazione. Inizia sempre con le cose facili, e lascia dichiarare tutto. Ma qualsiasi sistema reale richiede codice. XML quindi cade verso il basso. C'è anche il problema che XML è una sintassi sbagliata per gli umani, e anche i linguaggi come Java sono più facili da leggere.

D'altra parte, c'è chiaramente bisogno di binari di GUI. Gli oggetti nudi sono il tentativo ragionevole più vicino che abbia mai visto.

+3

Dovresti saperne di più su XUL. Non è mai usato da solo, ovviamente; è scriptato con JavaScript (o, nel caso di Miro, Python). Provalo. È davvero fantastico – niXar

3

C'è qualche lavoro di prototipo in corso per e4 (Eclipse 4), che consentirebbe di costruire una GUI modificando un modello Ecore e personalizzandolo tramite CSS.
Vedere this blog post per alcuni dettagli e istruzioni per provarlo da soli.

1

Sono giunto alle sue stesse conclusioni riguardo ai quadri dichiarativi là fuori. Non vale la pena di imparare una nuova sintassi della GUI, a meno che non sia ampiamente supportata. XUL come linguaggio di interfaccia è molto diffuso, ma non esiste un framework di rendering java per questo.Direi HTML + CSS + Javascript e un contenitore Servlet è la migliore piattaforma Java per GUI oggi, ma purtroppo non ho trovato un modo indipendente dalla piattaforma per visualizzare pagine web come un'applicazione desktop.

0

Faccio tutte le mie cose swing a mano e nessuna delle mie applicazioni è cattiva. Se non sai come creare un'interfaccia utente utilizzabile e di bell'aspetto, non esiste una tecnologia che ti possa aiutare.

+1

cool it! forse non mi sono espresso molto bene. le mie app non sono per niente cattive (sono le più belle ...) ma il processo di costruzione di una complessa interfaccia con swing è chiaramente antipatico, almeno per me :) –

1

Se si utilizza Eclipse, ora è possibile utilizzare WindowBuilder per facilitare la creazione di app di Swing in un generatore di GUI visuale di facile utilizzo. È ora disponibile come download gratuito e Google ha donato il framework del builder GUI Swing a Eclipse Foundation.