Salve ragazzi,come da topic vorrei sapere le differenze tra le due,quale conviene studiare e per cosa.E vorrei leggere anche alcune vostre esperienze,per cosa avete scelto di usare le awt e per cosa le swing
Grazie![]()
Salve ragazzi,come da topic vorrei sapere le differenze tra le due,quale conviene studiare e per cosa.E vorrei leggere anche alcune vostre esperienze,per cosa avete scelto di usare le awt e per cosa le swing
Grazie![]()
A dire il vero ce n'è anche un terzo: SWT, il framework di Eclipse.Originariamente inviato da energie
Salve ragazzi,come da topic vorrei sapere le differenze tra le due,quale conviene studiare e per cosa.E vorrei leggere anche alcune vostre esperienze,per cosa avete scelto di usare le awt e per cosa le swing
http://en.wikipedia.org/wiki/Abstract_Window_Toolkit
http://en.wikipedia.org/wiki/Swing_%28Java%29
http://it.wikipedia.org/wiki/Swing_%28Java%29
http://en.wikipedia.org/wiki/Standard_Widget_Toolkit
http://www-128.ibm.com/developerwork...y/os-swingswt/
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
ti racconto la favoletta, poi dietro ci saranno implicazioni diverse, più profonde etc etc.
AWT è la prima libreria "grafica" di java, c'è sempre stata e chiaramente, per rendere java un degno concorrente di VB e quant'altro, ci infilarono dentro tutte le classi necessarie per creare applicazioni a finestre, form etc etc. Quella parte di awt, che è anche quella che si usa (o si usava) più spesso è rimasta praticamente intonsa dalla prima edizione (ok, sistemato bugs e quant'altro). Dopo tot anni, alla Sun si sono accorti che effettivamente tali controlli messi a disposizione da awt erano "brutti", "scomodi" e decisamente obsoleti... sviluppando un nuovo package con controlli più performanti, graficamente accattivanti e altre belle storielle del genere, sconsigliando in definitiva ai programmatori di continuare ad utilizzare le classi di awt con analoghi in swing. Morale della favola, Frame, Window, Label, Button etc etc che trovi in AWT sono rimaste nei JDK/JRE per retrocompatibilità e non verranno mai eliminate. SWING è la scelta principe per le applicazioni odierne (usare awt vs usare swing? è come chiedere usare canoa o aereo per andare in america?). Ripeto, nulla ti vieta, se non il "buon senso" di utilizzare awt, l'unica vera accortezza da avere è il non mescolare awt con swing.
Esperienze personali: fin quando c'erano solo le awt ho usato quelle, quando hanno inserito swing, ho smesso di usare awt. Passaggio poco traumatico: nella maggior parte dei casi, la differenza sta in una maggiore flessibilità... all'atto pratico: un import diverso, componenti customizzabili molto più facilmente, e basta ricordarsi di mettere una J davanti ai nomi dei vecchi componenti![]()
Per cosa è più adatta una rispetto all'altra... il VS dovrebbe già averti risposto![]()
"Pecca" di swing: quando la SUN ha diffidato Microsoft dal produrre la sua VM (ancora in giro se ne trovano, ma sono ferme al JDK 1.3 o giù di lì), vincendo la causa (la VM non verrà mai più aggiornata né viene dato supporto per programmi scritti esplicitamente per VM), Microsoft non aveva scritto niente perché swing ed altre librerie (fondamentalmente, tutto quello che si trova in javax più altre cose) e pertanto, chi ancora usa la VM non può lanciare applicazioni che utilizzino SWING. La VM di Microsoft credo sia andata in pensione nel 2001 o nel 2000, quindi non te ne devi preoccupare, visto che non è software standard.
<´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
"The answer to your question is: welcome to tomorrow"
capisco..vi ringrazio per le risposte...quindi le swing sono più performanti e sono uguali su tutti i sistemi a differenza delle awt che sono specifiche per ogni OS....domanda,c'è un modo per creare un programma con le swing mantenendo la grafica dell'OS su cui gira?ad esempio io uso Mac OS X,mi piacerebbe che le mie applicazioni create in swing avessero lo stesso aspetto grafico(Metal/aqua) invece del violaceo comune ad altre applicazioni java,è possibile?avete un link a riguardo?Grazie ancora per le vostre risposte
![]()
No alt.Originariamente inviato da energie
quindi le swing sono più performanti e sono uguali su tutti i sistemi a differenza delle awt che sono specifiche per ogni OS
I componenti AWT sono detti "heavyweight" perché fanno uso di componenti nativi del S.O. Dal momento che su ogni S.O. ad esempio il componente per un campo di testo si può comportare diversamente o avere funzionalità extra o specifiche, la Sun ha deciso di sfruttare solo le caratteristiche di ogni componente che sono comuni a tutti i S.O.
Al contrario i componenti Swing sono detti "lightweight", non usano componenti nativi del S.O. perché "si disegnano" interamente per conto loro (tramite codice Java).
Per tali motivi, i componenti Swing sono un po' più "pesanti" da gestire rispetto ad AWT, visto che tutta la gestione/disegno dell'interfaccia è fatta con codice Java.
Questo però ha il vantaggio che un componente Swing può essere "disegnato" allo stesso modo su vari S.O.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
capisco,e per quanto riguarda la grafica?è possibile modificarla come si vuole?o si deve tenere sempre lo stesso aspetto violaceo?
Ci sono dozzine di Look&Feel diversi da applicare: java di suo te ne propina qualcuno, in giro per la rete ne trovi altri (ad esempio, su jgoodies)
<´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
"The answer to your question is: welcome to tomorrow"
No, puoi applicare uno specifico "Look & Feel" e questa è una funzionalità, se ci pensi, fattibile solo per Swing. Con AWT non sarebbe possibile perché solo il S.O. sa come disegnare i suoi componenti nativi.Originariamente inviato da energie
capisco,e per quanto riguarda la grafica?è possibile modificarla come si vuole?o si deve tenere sempre lo stesso aspetto violaceo?
Java mette a disposizione nel suo framework standard alcuni L&F:
- Metal (un L&F multipiattaforma che è il default)
- CDE/Motif
- Windows (su Windows)
Ma ne puoi trovare molti altri, la gestione del L&F è una architettura "a plug-in".
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
quindi sarebbe possibile anche crearne di propri?
Certo ... a patto di avere le conoscenze appropriate sull'argomento ..... (io non le ho di certo)Originariamente inviato da energie
quindi sarebbe possibile anche crearne di propri?
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet