Quali sono i difetti del framework GUI Java Swing? [chiuso]

10

Ho usato Java Swing per alcune applicazioni desktop. Ma non ho usato altri framework GUI così tanto che non posso confrontarli.

Ci sono sicuramente alcune cose che mi piacciono con Swing e alcune che non mi piacciono, ma questa è la situazione con quasi tutto.

Quali sono i maggiori inconvenienti con il framework GUI Java Swing?

    
posta Jonas 12.02.2011 - 23:12
fonte

3 risposte

3
  1. Devi avere java installato da qualche parte. Questo è vero per tutti i framework GUI, ovviamente, ma java ha la percezione di un gorilla da 2 tonnellate. Ha ottenuto un sacco di meglio, ma quei primi giorni di applet java hanno fatto perdere parecchia gente. Se ti serve solo per eseguire la tua app, è necessaria molta manutenzione per tenerlo aggiornato con le patch di sicurezza e simili. Tutti devono avere Flash per youtube, il framework .Net installa dietro le quinte e tutti hanno JavaScript abilitato sul proprio browser. Java è di solito una cosa extra da fare.

  2. Sebbene sia in qualche modo write-once, eseguito ovunque, si scopre comunque che Mac OSX non ha questa cosa nuova che si vuole usare o un client si rifiuta di aggiornare il proprio mandrake linux dopo JRE 1.4.

  3. Come dev, devi pensare al threading. Ed è in un modo complicato, poiché il multi-threading è possibile, ma swing fa finta che sia tutto a thread singolo. Ma poi la metà delle librerie che hai in mano hanno un certo grado di multi-threading e presumi che tu sappia su EDT invokeLater e costringe un sacco di lezioni nel modo più duro.

  4. L'esperienza Swing non si trasferisce facilmente ad altri tipi di sviluppo dell'interfaccia utente. Ad esempio, se sei un mago alle tabelle in .css, sarai completamente ingannato da Jtables, renderer, editor, ecc.

In generale, il problema principale con Swing è che non è stato all'altezza di come è stato commercializzato. È una tecnologia perfettamente adeguata per molti casi d'uso, ma quei primi 5 o 6 anni erano pieni di implementazioni orribili e applet atroci. E ora è una vecchia tecnologia sul Web 3.0 o qualsiasi altra cosa.

Tutto ciò che ho detto, mi piace Swing e penso che i professionisti generalmente superino gli svantaggi quando hai bisogno di ciò che offre. Tuttavia, l'esperienza web è così onnipresente ora che molti utenti avranno un momento più facile con un'app Web rispetto alla sorprendente app più snella. E ci sono fantastiche app Swing là fuori, ma non sembrano essere mainstream.

    
risposta data 13.02.2011 - 05:00
fonte
2

Jonas,

L'oscillazione generalizza l'architettura sottostante per offrirti un'esperienza utente neutra rispetto alla piattaforma. L'unico componente pesante (fornito dal sistema operativo) è il contenitore JFrame e il resto è gestito in gran parte dallo scatto di Swing. AWT dall'altra parte, chiede al sistema operativo di disegnare tutti i suoi componenti dell'interfaccia utente, il che significa che è più veloce in molti modi poiché si utilizzano i componenti UI nativi specifici del sistema operativo. SWT cerca di ottenere una via di mezzo, per vari componenti standard come pulsanti ed etichette (che sono disponibili nella maggior parte dei sistemi operativi), consente al sistema operativo di gestire quelli e ad altri componenti specializzati, SWT gestirà la creazione per te.

Detto questo, posso delineare gli inconvenienti.

(1) Poiché il toolkit crea e rende i componenti per te piuttosto che chiedere al sistema operativo, non puoi sfruttare la velocità dei componenti incorporati forniti dal sistema operativo.

(2) L'interfaccia utente non è particolarmente attrattiva in quanto sembra estranea alla maggior parte delle piattaforme del sistema operativo per quanto riguarda l'aspetto e l'aspetto che si utilizzano.

(3) Alcuni dei gestori di layout i.e GridBadLayout ecc potrebbero essere meglio semplificati. Ho perso il conto del numero di progetti su cui ho lavorato in cui le persone hanno avvolto GridBagLayout in un codice su misura per ottenere un modo più semplice di usarlo.

Ti consiglio di scrivere una semplice app in AWT, Swing e SWT e confrontare gli approcci di sviluppo con il prodotto finale tra tutti, quindi rivedere i vari commenti fatti da altri sviluppatori e decidere quale funziona meglio. Ho lavorato con Swing per molti anni e ho usato antipatia per SWT, ma mi sono reso conto che Swing è molto più complicato di quanto dovrebbe essere rispetto ad altri framework là fuori.

    
risposta data 14.02.2011 - 22:13
fonte
-2

Lo swing è lento (prestazioni scadenti), difficile / goffo da usare (rispetto a molti altri) e non sembra molto buono, in effetti molto brutto, su alcune piattaforme.

    
risposta data 12.02.2011 - 23:24
fonte

Leggi altre domande sui tag