Newsgroup: it.comp.java
Titolo: Cambiare LookAndFeel

Ciao ragazzi!
Vorrei cambiare il look and feel nella mia applicazione, così ho
scaricato qualche plaf tipo skinlf,slaf però non riesco ad inserirli
nel mio codice.
Per esempio skinlf (dopo aver inserito il jar nella classpath) mi dice
che non trova il file themepack.zip nella cartella home!
A cosa serve tale file? non dovrebbe essere tutto compreso nel jar che
ho importato?!



Con la release 1.2.4 di SkinLf, gli autori si sono "dimenticati" di
inserire sul sito un link al pdf che contiene tutte le istruzioni
step-by-step per integrare la libreria con il resto dell'ambiente.
Vediamo se riesco a riassumere il tutto:
Oltre alla libreria e alla documentazione, sei andato a scaricarti
anche gli 8 temi più diffusi? se non l'hai ancora fatto, fallo ora:
http://javootoo.l2fprod.com/plaf/skinlf/index.php
Salvali dove ti fa più comodo.
(su 
www.javootoo.com
 troverai anche i link verso molti altri L&F)
Io ti consiglierei inoltre questa procedura di installazione (che puoi
benissimo replicare sui pc che riceveranno il tuo programma).
Eventualmente modifica i percorsi per adeguarti alle installazioni
locali del JDK/JRE.
- copia skinlf.jar e nativeskin.jar nella cartella lib\ext sia del
  tuo JDK (quindi in C:\j2sdk1.4.2_01\jre\lib\ext) sia nel JRE
  (cioè in C:\Programmi\Java\j2re1.4.2_01\lib\ext). Non mi sono
  sbagliato... volevo proprio dire 2 copie di ciascun file. In
  questo modo potrai testare la tua applicazione in tutte le
  condizioni possibili.
- stessa sorte per nativeskinwin32.dll e nativeskinwin32JAWT.dll,
  solo che questi devono finire nella cartella bin, accanto a
  java.exe e javaw.exe, sia in C:\j2sdk1.4.2_01\jre\bin che in
  C:\Programmi\Java\j2re1.4.2_01\bin. Attenzione a non metterli
  in C:\j2sdk1.4.2_01\bin .
- togli tutti i riferimenti a SkinLf dal tuo classpath. Ricordati
  che quando lanci un'applicazione con l'opzione -jar, il tuo
  classpath corrente viene totalmente ignorato, mentre le librerie
  inserite in lib\ext vengono SEMPRE prese in considerazione,
  qualunque siano le opzioni passate alla JVM.
- nella cartella lib delle due installazioni...
  C:\j2sdk1.4.2_01\jre\lib (per l'SDK)
  C:\Programmi\Java\j2re1.4.2_01\lib (per il JRE)
  ...devi creare un file di testo che chiamerai "swing.properties". Il
  suo contenuto dovrà essere il seguente:
----- FILE swing.properties -----
swing.installedlafs=motif,gtk,metal,windows,skinlf
swing.installedlaf.motif.name
=CDE/Motif
swing.installedlaf.motif.class=com.sun.java.swing.plaf.motif.MotifLookAndFeel
swing.installedlaf.metal.name
=Metal
swing.installedlaf.metal.class=javax.swing.plaf.metal.MetalLookAndFeel
swing.installedlaf.windows.name
=Windows
swing.installedlaf.windows.class=com.sun.java.swing.plaf.windows.WindowsLookAndFeel
swing.installedlaf.gtk.name
=Gtk
swing.installedlaf.gtk.class=com.sun.java.swing.plaf.gtk.GTKLookAndFeel
swing.installedlaf.skinlf.name
=Skin Look And Feel 1.2.4
swing.installedlaf.skinlf.class=com.l2fprod.gui.plaf.skin.SkinLookAndFeel
#swing.defaultlaf=com.l2fprod.gui.plaf.skin.SkinLookAndFeel
----- FINE FILE -----
  In questo modo la JVM considererà il LookAndFeel SkinLf installato a
  tutti gli effetti (insieme ai L&F standard). Con questo file, se una
  applicazione chiede all' UIManager l'elenco di L&F installati,
  riceverà anche un descrittore creato appositamente per SkinLf. Per
  maggiori info a questo riguardo consulta la documentazione di
javax.swing.UIManager.getInstalledLookAndFeels()
  Noterai sicuramente che l'ultima riga è commentata. Se la attivi,
  tutte le applicazioni che sfruttano Swing assumeranno di default il
  LooK&Feel specificato qui (in questo caso proprio SkinLf). Se però
  l'applicazione include anche solo una chiamata a
  UIManager.setLookAndFeel(), questo parametro non viene più preso in
  considerazione.
  Nota bene: il L&F Gtk è disponibile solo dalla versione 1.4.2 in
  in avanti. Se lavori ancora con il jdk 1.4.1 (o precedenti) la prima
  riga va modificata in
swing.installedlafs=motif,metal,windows,skinlf
  e conseguentemente vanno eliminate le due righe che si riferiscono a
  "gtk".
- Tra i theme pack che hai scaricato, scegline uno (secondo me il
  migliore è aquathemepack.zip). Copialo nella tua home directory,
  all'interno della cartella ".skinlf" . Per sapere qual'è la tua home
  directory su WinNT/Win2000/WinXP , apri un prompt dei comandi e
  scrivi:
echo %userprofile%
  Probabilmente non avrai nemmeno la cartella ".skinlf" (non hai visto
  male, c'è proprio un punto davanti). Per crearla non puoi usare il
  solito File->Nuovo->Cartella, perche la shell di windows non ti
  permette di usare nomi che iniziano con "." . Puoi farlo solo dal
  prompt dei comandi:
md "%userprofile%\.skinlf"
  In questa nuova cartella copia il file che contiene il tema che hai
  scelto, e rinominalo "themepack.zip". Solo in questo modo SkinLf
  sarà in grado di trovarlo.
Ok, questo post è diventato fin troppo lungo. Se ti servono altre
info, ad esempio su come specificare un percorso di un themepack
all'interno della tua applicazione, chiedi pure (lo stesso discorso
vale anche per tutti gli altri utenti del NG).
--
"tanto va la gatta al largo che affoga"
(per rispondere personalmente leva IlDitoDalCulo)

grazie mille! Sei stato molto chiaro, ora provo a fare ciň che mi hai
detto!
Grazie ancora!

vale anche per tutti gli altri utenti del NG).
Ho provato a vedere un po' come dici te e mi interesserebbe proprio
come specificare il percorso di un theme.
Hai mica l'indirizzo del pdf di cui parlavi nella risposta?!
Un'altra questione che non centra molto.
Se voglio distruibuire la mia applicazione quindi mi consigli di fare
i jar dei pacchetti che utilizzo e poi copiarli nella directory
/lib/ext giusto?!
Speriamo un giorno di riuscire a capirci un po' di piů di questo
java!:D
ehehehe
Grazie ciao ciao!

Grazie ciao ciao!
Di nulla ;)


Grazie mille per tutto il discorso che mi è stato veramente utile!:D
Grazie davvero!
Se potessi spedirmi il pdf all'inidirizzo
nuanda69-chiocciola-galactica.it
 !
Ciao ciao e grazie ancora!