View Full Version : [JAVA (grafica)] Uso di librerie grafiche alternative
salve a tutti, ultimamente mi sto divertendo con le interfacce grafiche che java mette a disposizione, sto usando netbeans per la realizzazione grafica (faccio prima che a scriverla a mano) e vorrei sapere una cosa, dato che la grafica delle swing e delle awt non è che sia molto bella, vorrei sapere se c'è la possibilità di usare altre librerie grafiche, non so anche quelle di windows andrebbero bene, lo so che usando swing il codice e portabile e indipendente da os al 100% ma proprio non mi piace la grafica swing, qualcuno di buona volontà saprebbe darmi una mano a capire se è possibile usare altre librerie grafiche e come ?
ringrazio anticipatamente per la risposta, aiutiamoci a crescere in questo fantastico mondo della programmazione... :D
Non capisco cosa ci sia di così orrendo nell'aspetto dei componenti Swing.
http://www.tukano.it/cookie.png
Io sono assolutamente privo di senso estetico ma non mi pare poi tutta 'sta schifezza. E considerando che questo è uno dei migliardoni di aspetti possibili direi che Swing è messo piuttosto bene.
scusa ma proprio adesso ho capito come fare per usare le altre librerie grafiche di java, pensavo che esistesse solo un tipo di grafica (che poi è la più brutta),
perciò chiedevo aiuto...
prova a usare le SWT che si integrano alla perfezione nel desktop in uso (al contrario delle SWING). fanno parte di eclipse ma si possono scaricare liberamente e utilizzare senza eclipse http://www.eclipse.org/swt/
io le ho trovate davvero ottime nel modo in cui sono strutturate, inoltre sembrano più reattive di SWING
prova a usare le SWT che si integrano alla perfezione nel desktop in uso (al contrario delle SWING). fanno parte di eclipse ma si possono scaricare liberamente e utilizzare senza eclipse http://www.eclipse.org/swt/
io le ho trovate davvero ottime nel modo in cui sono strutturate, inoltre sembrano più reattive di SWING
ciao io uso anche eclipse con il plug-in window builder e proprio ora sto provando ad usare le swt che rappresentano proprio quello che cercavo, ora dato che sto facendo un pò di confusione mentale, mi puoi aiutare a chiarire le mie idee riguardo alle interfaccie grafiche con java ?
tipo come faccio a creare una gui con gli oggetti dell'immagine del secondo post ?
dai un'occhiata a questo materiale che è linkato dalla pagina ufficiale di SWT
http://www.sys-con.com/story/?storyid=37463&DE=1
http://www.sys-con.com/story/?storyid=37509&DE=1
http://www.cs.umanitoba.ca/~eclipse/
poi vabbè.. l'indispensabile javadoc http://help.eclipse.org/help31/nftopic/org.eclipse.platform.doc.isv/reference/api/index.html
@k0nt3: mi interessa approfondire l'argomento SWT per un mio progetto. in particolare un punto chiave di cui mi interessa sapere è: quali dipendenze comporta ad un'applicazione Java l'uso di SWT? perché se devo trainarmi appresso 10 DLL per Windows e altrettanti .so per Linux (rinunciando alla platform independence) allora io me ne starei tranquillino con Swing... ^^
ed inoltre come mai dici che SWT si integra meglio nel desktop della piattaforma?
@k0nt3: mi interessa approfondire l'argomento SWT per un mio progetto. in particolare un punto chiave di cui mi interessa sapere è: quali dipendenze comporta ad un'applicazione Java l'uso di SWT? perché se devo trainarmi appresso 10 DLL per Windows e altrettanti .so per Linux (rinunciando alla platform independence) allora io me ne starei tranquillino con Swing... ^^
niente di tutto questo.. devi solo mettere il jar (che cambia a seconda della piattaforma) nel classpath.
ed inoltre come mai dici che SWT si integra meglio nel desktop della piattaforma?
credo che utilizzi le chiamate native dell'OS in cui viene eseguito il programma per disegnare le finestre.. o almeno l'effetto è questo. ad esempio eclipse è fatto con SWT e come puoi vedere si integra sia in windows che in linux (con gtk o motif.. niente qt per ora) che in OSX.
invece se usi swing si nota subito che l'aspetto dell'applicazione non ci azzecca niente con il resto del desktop :fagiano:
infine mi piace molto come sono organizzate le librerie.. è una maniera un pò diversa da swing ma ci si abitua in poco tempo e si capisce subito che sono molto potenti. ci sono alcune features carine come il fatto che puoi settare e gettare oggetti arbitrari in qualsiasi widget. può sembrare una cosa stupida ma è di un'utilità assurda a volte. ad esempio mi è capitato di avere una tabella sincronizzata con un DB, ma per motivi di leggibilità ho dovuto omettere alcune colonne tra cui la chiave primaria della tabella. ora.. se non ci fosse stata questa possibilità di associare dati arbitrari a qualsiasi widget avrei dovuto fare le acrobazie (poco eleganti) per risalire alla chiave di quella riga, ed era anche un'operazione piuttosto frequente :D
diciamo che le trovo paragonabili alle QT :sofico:
qui ci sono un pò di risposte http://www.eclipse.org/swt/faq.php
^TiGeRShArK^
27-05-2007, 20:26
prova a usare le SWT che si integrano alla perfezione nel desktop in uso (al contrario delle SWING). fanno parte di eclipse ma si possono scaricare liberamente e utilizzare senza eclipse http://www.eclipse.org/swt/
io le ho trovate davvero ottime nel modo in cui sono strutturate, inoltre sembrano più reattive di SWING
vero :O
però il Visual Editor di Eclipse IMHO fa ben + skifo dell'editor di NetBeans dalla 5.5 in su...
Certo ke se te le disegni a mano non te ne frega niente..
ma se lui usa l'editor di netbeans non so come si possa trovare con il visual editor (ke tra l'altro non supporta nemmeno adeguatamente l'ottimo FormLayout di SWT....)
^TiGeRShArK^
27-05-2007, 20:27
e IMHO sono anche ben + veloci e reattive rispetto a swing :p
EDIT: ops.. l'avevi già scritto tu :D
allora mi occorre un aiutino diretto senza link ad altre pagine, ora sto usando eclipse con il window builder, ho creato due applicazioni una con swt e una con swing, adesso voglio creare un file .jar sia per l'applicazione swing che swt.
Già ho provato ad esportare i progetti con eclipse ma quando mi creà il file.jar non mi funziona dicendo che non trova la main class(anche se lo indicata nel manifest prima di creare il jar).
Con netbeans sembra più facile fare questo basta fare build project che ti fa una cartella dove ci sono i vari file tra cui il jar che basta cliccare per avviare l'applicazione, ma dato che preferisco di gran lunga eclipse...
Mi date una mano mi sto esaurendo.... :muro: :wtf:
Per le SWT ti servono quattro librerie dinamiche più il jar.
Sono un fork (ostile) delle AWT che IBM rilasciò nel momento in cui Sun decise di abbandonare il paleolitico creando Swing. Che, per inciso, è il più avanzato framework per la gestione di interfacce utente ad oggi mai creato.
Le AWT/SWT funzionano delegando al desktop manager di sistema la creazione del componente e questa è la ragione per cui l'aspetto dei componenti è identico a quello delle applicazioni native.
Ad alcuni SWT piace e personalmente sono dell'idea che uno debba scegliere le librerie con cui si sente più produttivo.
:D Chiunque percepisca una differenza di prestazioni tra Swing ed SWT dovrebbe tentare anche di levare un calice di sangue al cielo: c'è caso che si trasformi in vino. I deboli di stomaco possono ripiegare sulla moltiplicazione di pan carrè e scatolette di tonno. :D
^TiGeRShArK^
27-05-2007, 21:19
kazz..
ecco perchè l'altro giorno ho moltiplicato il pane e i pesci senza rendermene conto :eek:
:asd:
Per le SWT ti servono quattro librerie dinamiche più il jar.
niente di tutto questo.. devi solo mettere il jar (che cambia a seconda della piattaforma) nel classpath.
scartato :D
scusatemi ma alla platform independence totale non rinuncio :O :read:
^TiGeRShArK^
27-05-2007, 22:15
ma vedi ke anche con diamonds nella versione WEB START (ke è rimasta sul mio portatile e non ho mai rilasciato in effetti :stordita: ) tutte le dll di lwjgl erano incapsulate in un jar e poi spettava al jnlp descriptor smazzarsi le librerie giuste a seconda dei SO :p
allora mi occorre un aiutino diretto senza link ad altre pagine, ora sto usando eclipse con il window builder, ho creato due applicazioni una con swt e una con swing, adesso voglio creare un file .jar sia per l'applicazione swing che swt.
Già ho provato ad esportare i progetti con eclipse ma quando mi creà il file.jar non mi funziona dicendo che non trova la main class(anche se lo indicata nel manifest prima di creare il jar).
Con netbeans sembra più facile fare questo basta fare build project che ti fa una cartella dove ci sono i vari file tra cui il jar che basta cliccare per avviare l'applicazione, ma dato che preferisco di gran lunga eclipse...
Mi date una mano mi sto esaurendo.... :muro: :wtf:
Prova a trasferire "a mano" nella cartella in cui si trova il jar prodotto da eclipse il jar di SWT e le due 4 dll (o so). Controlla che nel file manifesto del jar sia specificato l'attributo Class-Path, tipo:
Class-Path: swt.jar
(non ricordo se il file jar si chiami swt.jar o sia swtX_Y_Z.jar). Dopodichè lancia il jar con la linea di comando: se capita qualche errore dovrebbe darti un messaggio più significativo di "Couldn't find main class".
Non capisco cosa ci sia di così orrendo nell'aspetto dei componenti Swing.
http://www.tukano.it/cookie.png
Io sono assolutamente privo di senso estetico ma non mi pare poi tutta 'sta schifezza. E considerando che questo è uno dei migliardoni di aspetti possibili direi che Swing è messo piuttosto bene.
mi dici come fai ad ottenere questa interfaccia con swing ?
io riesco ad usare solo questo tipo di interfacccia :http://gfx.developpez.com/tutoriel/java/swing/swing-threading/images/swing8.png
L'interfaccia che hai va bene così, nel senso che la struttura c'è. Per cambiare l'aspetto usi.. Swing :D. Quello che devi fare è semplicemente usare un diverso LookAndFeel. Uno che mi ingrifa parecchio è substance:
https://substance.dev.java.net/
Scarica "substance 3.3 library"
https://substance.dev.java.net/servlets/ProjectDocumentList?folderID=6263&expandFolder=6263&folderID=0
E' un jar (substance.jar).
Ora, supponendo che la classe principale del tuo programma si chiami
it.ulver.Main
per usare l'aspetto predefinito di substance lanci la tua applicazione con:
java -cp .;substance.jar -Dswing.defaultlaf=org.jvnet.substance.SubstanceLookAndFeel it.ulver.Main
Qui ho supposto che il jar "substance.jar" si trovi nella stessa cartella da cui lanci il comando "java".
Lo stesso fai con altri look and feel: ce ne sono a carrettate in giro per il web.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.