PDA

View Full Version : [Java] Swing o SWT?


Skaffa81
20-04-2009, 11:07
Ciao a tutti.
Premetto che sono agli inizi della programmazione grafica in java, e quindi mi servirebbe il vostro aiuto per decidere verso quale strada procedere.

Ora come ora son indeciso se appunto usare SWING o le SWT.

Il mio obiettivo e' quello di creare una interfaccia grafica personalizzata, ovvero con stile diverso dal solito look java, magari usando librerie grafiche in giro per il web o crearne di mie.
Vorrei anche che tale applicazioni possa supportare vari sistemi operativi.

Detto cio, che consigli mi dareste in merito quindi?
Magari, se possibile, spiegandomi brevemente le differenze principali tra le due librerie grafiche.

Vi ringrazio anticipatamente,

ciao :)

wizard1993
20-04-2009, 11:18
fossi in te; per tale scopo, userei i binding delle qt per java

banryu79
20-04-2009, 11:40
Ciao,
posto due link che ti possono essere d'aiuto per una schiarita di idee iniziale.
- [JAVA (grafica)] Uso di librerie garfiche alternative (http://www.hwupgrade.it/forum/showthread.php?t=1480990&highlight=SWT+SWING)
- Swing & SWT: A tale of two Java GUI Libraries (http://www.developer.com/java/other/article.php/10936_2179061_1)

PGI-Bis
20-04-2009, 12:30
Swing.

banryu79
20-04-2009, 13:50
Swing.
A voler essere espliciti, sì :D

Don[ITA]
20-04-2009, 13:53
Swing
Magari putta un occhio QUI. (https://substance.dev.java.net/)

Ciauz

Skaffa81
20-04-2009, 14:05
Grazie a tutti per le risposte.
Penso che propendero' per Swing.

A questo punto vorrei chiedervi: quali editor/plug in mi consigliate (per swing)?
Al momento sto usando Eclipse "liscio" , ovvero senza nessun tipo di plugin.
Cosa mi consigliate?

british
20-04-2009, 14:15
Grazie a tutti per le risposte.
Penso che propendero' per Swing.

A questo punto vorrei chiedervi: quali editor/plug in mi consigliate (per swing)?
Al momento sto usando Eclipse "liscio" , ovvero senza nessun tipo di plugin.
Cosa mi consigliate?

Io ti consiglio di continuare per un po' così.
Scriversi le gui a mano è rognoso ma importante per capire come funzionano alcune cose ( mvc, eventi, gerarchia di classi swing ecc.) anche a costo di ottenere schifezze estetiche.

Per un approccio più grafico ultimamente sto sperimentando questa combo: disegno l'interfaccia in netbeans e poi trasferisco il codice in eclipse dove me lo ritocco a mano secondo il mio gusto/esigenze.

Leggevo banryu79 tempo fa accennare al fatto che netbeans può importare direttamente progetti eclipse.

Questi approcci chiaramente rendono se logica e interfaccia utente della tua applicazione sono ben separate ( ma se non lo sono in realtà hai ben altri problemi... )

ciao!

british

Skaffa81
20-04-2009, 14:20
Ma netbeans ha un plug in grafico per creare UI grafiche usando swing?

banryu79
20-04-2009, 14:44
Leggevo banryu79 tempo fa accennare al fatto che netbeans può importare direttamente progetti eclipse

So che esiste un plug in in NetBeans che permette di importare un proggeto di Eclipse, ma personalmente non l'ho mai usato (ma lo vedo nella lista dei plug in presenti nella mia installazione di NetBeans).

In realtà l'esperto è TigerShark, che se non ricordo male usava Eclipse per scrivere il codice della logica applicativa (sfruttando quindi i potenti strumenti di refactoring di Eclipse) e poi importava in NetBeans per sfruttare Matisse (l'editor di GUI basate su Swing).


A questo punto vorrei chiedervi: quali editor/plug in mi consigliate (per swing)?

Semplice: installa NetBeans e usa il GUI editor integrato (Non so se si chiami ancora Matisse nella versione 1.6, comunque il nome era quello).

Due link informativi:
Java Editing in NetBeans IDE 6.0 (http://www.netbeans.org/kb/60/java/editor-tips.html)
Designing a Swing GUI in NetBeans IDE (http://www.netbeans.org/kb/60/java/quickstart-gui.html)

P.S.: quoto il consiglio di british: impara a creare le tue interfacce via codice, cioè a manina, senza l'aiuto di un editor di GUI, se vuoi veremante spendere del tempo nell'apprendimento di conoscenze utili.
C'è un mucchio di roba da sapere, a partire da zero; l'uso dei GUI Editor non ti solleva dalla responsabilità di sapere le cose, serve solo a chi già sa cosa sta facendo a risparmiare del tempo perchè fare Drag'n'Drop di componenti visuali è più veloce che digitare a mano il codice: ma questo solo se sai già esattamente come usare i tuoi componenti e dove devi andare a parare ;)

PGI-Bis
20-04-2009, 14:59
skaffa, hai la casella dei pm piena. Rispondo qui, è una cosa che penso possa interessare.

L'uso di un plug-in (quello di Netbeans si chiama Matisse, è integrato e funziona benissimo) è consigliato perchè la creazione di un'interfaccia utente è 50% tecnica e 50% arte visiva.

E' un po' come disegnare e disegnare da codice viene malissimo :D.

Il problema è che i tool per la creazione di interfacce grafiche utente sono essenzialmente statici. Vedi l'interfaccia com'è in un certo istante ma non vedi le transizioni di stato in effetto.

Le interfacce grafiche visivamente "ricche" sono soggette ad una varietà di animazioni e queste animazioni non si vedono in un tool per la creazione di GUI se non attraverso un'anteprima del programma.

Per farla breve una GUI anche bellissima ma non particolarmente ricca quanto ad effetti viene più che bene con un qualsiasi GUI builder ma quando la GUI inizia ad avere un certo carico di "animazioni" l'influenza del GUI builder diventa minima perchè la maggior parte del tempo lo spendi codificando le animazioni e il GUI builder non è in grado di mostrarle.

71104
20-04-2009, 21:00
Swing, senza neanche la minima esitazione/ombra di dubbio. SWT non ha senso, ti fa perdere la portabilitá, e se c'é un toolkit potente quello é di sicuro Swing.
"ma SWT é piu fico"? non é vero, Swing é skinnabile e quindi puoi dargli l'aspetto che ti pare. "ma SWT é piu performante"? dimostramelo, ma fossi in te eviterei di perdere tempo.

DanieleC88
20-04-2009, 21:46
Swing, senza neanche la minima esitazione/ombra di dubbio. SWT non ha senso, ti fa perdere la portabilitá, e se c'é un toolkit potente quello é di sicuro Swing.
"ma SWT é piu fico"? non é vero, Swing é skinnabile e quindi puoi dargli l'aspetto che ti pare. "ma SWT é piu performante"? dimostramelo, ma fossi in te eviterei di perdere tempo.

*

Skaffa81
21-04-2009, 08:05
Mi avete decisamente convinto, sto gia' muovendo i primi passi in Swing.
Devo dire che le potenzialita' sembrano decisamente enormi.
Ora sto iniziando a studiare i vari tutorial.
Se qualcuno ha qlc link/libro da consigliarmi (oltre al tutorial sun) sono ben accetti :D

nucarote
21-04-2009, 08:59
...
Il mio obiettivo e' quello di creare una interfaccia grafica personalizzata, ovvero con stile diverso dal solito look java, magari usando librerie grafiche in giro per il web o crearne di mie.
Vorrei anche che tale applicazioni possa supportare vari sistemi operativi.
...

Una buona cosa e giusta IMHO sarebbe cercare di mettere il mettere il look and feel adatto al SO su cui la tua applicazione verrà eseguita.

Skaffa81
21-04-2009, 09:31
Il problema e' che vorrei farla multi piattaforma, quindi dovro' cercare uno stile abbastanza "neutro" che si combini bene con il SO

nucarote
21-04-2009, 09:45
Il problema e' che vorrei farla multi piattaforma, quindi dovro' cercare uno stile abbastanza "neutro" che si combini bene con il SO

Il JRE di default, a seconda delle sue versioni, è dotato di un set di l&f, tra cui c'è anche quello per i sistemi Windows e Mac (unico inconveniente è che bisogna stabilire per Linux quale sia il migliore l&f) dovrai prendere cui per cui ti consiglierei di aggiungere un controllo di questo genere:


if(System.getProperty("os.name").contains("Windows")){
try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
} catch (Exception e) {...}
}else if(System.getProperty("os.name").contains("MAC")){
try {
UIManager.setLookAndFeel("nome look and feel di MAC che ora non ricordo");
} catch (Exception e) {...}
}else {
try {
UIManager.setLookAndFeel("uno che ritieni valido per Linux");
} catch (Exception e) {...}
}

Don[ITA]
21-04-2009, 11:34
;27161507']Swing
Magari putta un occhio QUI. (https://substance.dev.java.net/)

Ciauz

Se cerchi look and feel diversi quoto il mio post per il link che ho messo. :)

Ciauz

PGI-Bis
21-04-2009, 13:33
Il JRE di default, a seconda delle sue versioni... omissis...

Oh come la facciamo complicata :D

try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch(Exception e) {
e.printStackTrace();
}

Skaffa81
21-04-2009, 15:00
Qualcuno avrebbe un libro da consigliarmi?
Al di la' del materiale in rete, mi servirebbe un libro completo che parta dalle basi fino alle cose sofisticate.
Mi han cosigliato alcuni di prendere Java Swing edito da O'Rielly.
Unico dubbio e' pero che risale al 2002, e non vorrei fosse ormai obsoleto (non sapendo quanti cambiamenti ci possano essere stati nel frattempo).

Altri libri, soprattutto recenti, non ne conosco,sia in italiano che in inglese.

Mi serve un libro valido per partire a mille. Fino ad allora non vorrei inoltrarmi in guide magari non adatte.
Help!

banryu79
21-04-2009, 15:19
Qualcuno avrebbe un libro da consigliarmi?
Al di la' del materiale in rete, mi servirebbe un libro completo che parta dalle basi fino alle cose sofisticate.
Mi han cosigliato alcuni di prendere Java Swing edito da O'Rielly.
Unico dubbio e' pero che risale al 2002, e non vorrei fosse ormai obsoleto (non sapendo quanti cambiamenti ci possano essere stati nel frattempo).

Altri libri, soprattutto recenti, non ne conosco,sia in italiano che in inglese.

Mi serve un libro valido per partire a mille. Fino ad allora non vorrei inoltrarmi in guide magari non adatte.
Help!
Libri non so, se vuoi dei tutorial credo che quelli della Sun siano ottimi.
Ecco una soddisfacente risorsa:
- The really Big Index (http://java.sun.com/docs/books/tutorial/reallybigindex.html)
all'interno della quale ti segnalo in particolare queste due sezioni:
- Graphicsal User Interfaces (http://java.sun.com/docs/books/tutorial/ui/index.html)
- Creating a GUI with JFC/Swing (http://java.sun.com/docs/books/tutorial/uiswing/index.html)

banryu79
21-04-2009, 15:21
Edit, nello specifico il Look'n'Feel:
http://java.sun.com/docs/books/tutorial/ui/features/plaf.html

Skaffa81
11-05-2009, 10:34
Qualcuno di voi usa questo L&F?

http://www.easynth.com/

Sarei curioso di fargli qualche domanda.

Skaffa81
11-05-2009, 16:23
Qualcuno di voi usa questo L&F?

http://www.easynth.com/

Sarei curioso di fargli qualche domanda.

Ed inoltre, qualcuno saprebbe indirizzarmi verso qualche look and feel fatto bene (oltre a quelli segnalati in questo thread)?

banryu79
11-05-2009, 16:38
Ed inoltre, qualcuno saprebbe indirizzarmi verso qualche look and feel fatto bene (oltre a quelli segnalati in questo thread)?
Prova a spulciare qui: http://www.javootoo.com/index.html

Skaffa81
11-05-2009, 17:12
Prova a spulciare qui: http://www.javootoo.com/index.html

Quel sito e' uno di quelli su cui mi sto basando.
Pero' non riesco a trovarne di altri.

banryu79
11-05-2009, 17:24
Quel sito e' uno di quelli su cui mi sto basando.
Pero' non riesco a trovarne di altri.
Ehm, e non ti bastano i Look'n'Feel che ci sono lì?

DanieleC88
11-05-2009, 17:29
Prova a spulciare qui: http://www.javootoo.com/index.html
:eekk:

In questo momento ti sto amando. :asd:

Skaffa81
11-05-2009, 17:30
Ehm, e non ti bastano i Look'n'Feel che ci sono lì?

Si, trovo substance mooolto carino e penso mi orientero' su quello (in attesa di capire in quale modo pero' potro' utilizzarlo).

La domanda era giusto per sapere se esisteva altro.