Hardware Upgrade Forum

Hardware Upgrade Forum (https://www.hwupgrade.it/forum/index.php)
-   Programmazione (https://www.hwupgrade.it/forum/forumdisplay.php?f=38)
-   -   [Java] Swing o SWT? (https://www.hwupgrade.it/forum/showthread.php?t=1969063)


Skaffa81 20-04-2009 12:07

[Java] Swing o SWT?
 
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 12:18

fossi in te; per tale scopo, userei i binding delle qt per java

banryu79 20-04-2009 12:40

Ciao,
posto due link che ti possono essere d'aiuto per una schiarita di idee iniziale.
- [JAVA (grafica)] Uso di librerie garfiche alternative
- Swing & SWT: A tale of two Java GUI Libraries

PGI-Bis 20-04-2009 13:30

Swing.

banryu79 20-04-2009 14:50

Quote:

Originariamente inviato da PGI-Bis (Messaggio 27160035)
Swing.

A voler essere espliciti, sì :D

Don[ITA] 20-04-2009 14:53

Swing
Magari putta un occhio QUI.

Ciauz

Skaffa81 20-04-2009 15: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 15:15

Quote:

Originariamente inviato da Skaffa81 (Messaggio 27161743)
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 15:20

Ma netbeans ha un plug in grafico per creare UI grafiche usando swing?

banryu79 20-04-2009 15:44

Quote:

Originariamente inviato da british (Messaggio 27161923)
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).

Quote:

Originariamente inviato da Skaffa81
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
Designing a Swing GUI in NetBeans IDE

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 15: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 22: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 22:46

Quote:

Originariamente inviato da 71104 (Messaggio 27168143)
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 09: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 09:59

Quote:

Originariamente inviato da Skaffa81 (Messaggio 27158832)
...
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 10: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 10:45

Quote:

Originariamente inviato da Skaffa81 (Messaggio 27172062)
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:

Codice:

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 12:34

Quote:

Originariamente inviato da Don[ITA] (Messaggio 27161507)
Swing
Magari putta un occhio QUI.

Ciauz

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

Ciauz

PGI-Bis 21-04-2009 14:33

Quote:

Originariamente inviato da nucarote (Messaggio 27172271)
Il JRE di default, a seconda delle sue versioni... omissis...

Oh come la facciamo complicata :D

Codice:

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


Skaffa81 21-04-2009 16: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!


Tutti gli orari sono GMT +1. Ora sono le: 00:16.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Hardware Upgrade S.r.l.