PDA

View Full Version : [Tutorial Java] Guida Rapida a Swing


PGI-Bis
25-06-2009, 01:04
Mettere qualcuno che non l'abbia mai visto nelle condizioni di scrivere GUI con Swing. Fin qui nulla di impegnativo e allora facciamolo in 50 pagine http://forum.nipogames.com/images/smilies/tafazzi.gif.

Swing Espresso (http://www.tukano.it/swing%20espresso.pdf)

Naturalmente mancano un paio di cosette: non sono babbei quelli che lo fanno in mille-duemila pagine. Il fatto è che sorbirsi una decina di kili di carta per "provare l'effetto che fa" non è il massimo.

Tra le cose che non ci sono contiamo tre layout manager (SpringLayout, GroupLayout e GridBagLayout) che se accennati non fanno nulla di diverso da quelli più brevi e se approfonditi richiedono più pagine dell'intero tutorial proposto.

Lo stesso potremmo dire per JTable, JTree e JTextPane ma questi ci sono: questi hanno quei quattro o cinque metodi che coprono una vasta gamma di usi e sono brevissimi più un altro centinaio che coprono il dieci percento di utilità e divertimento ognuno dei quali sarebbe in grado di far sforare da solo il limite imposto.

In ogni caso l'obiettivo del tutorial per quanto possa dirsi breve è quello di far scrivere interfacce grafiche a finestra con Swing. Se alla fine della lettura non ci riuscite allora il tutorial non va bene.

Graditissimi commenti, segnalazioni suggerimenti. Quasi obbligatori. Accorcia qui, allunga là, qui c'è un refuso, qua hai detto una cazzata. Attendo con ansia.

29 giu 2009

Aggiornato il pdf con le correzioni gentilmente segnalate da banryu79.

banryu79
25-06-2009, 10:22
Scaricato! :mano:

Certo che il pdf l'hai fatto con tutti i crismi (ovvero ci sono i segnalibri, encomialbile :)).
Appena lo leggo posto un feedback.

Ah, grazie anche per questo contributo: i tuoi tutorial che ho letto in passato mi sono stati molto utili per riorganizzare conoscenze già acquisite e colmare lacune, grazie alla chiarezza espressiva e organizzativa dei testi.
Inoltre si fanno leggere molto volentieri.

wingman87
25-06-2009, 11:21
Grazie PGI, lo leggerò appena finiti gli esami.

fero86
25-06-2009, 15:30
se solo avessi avuto questa guida 3 anni fa...
grazie mille PGI-Bis :)

javacomelava
25-06-2009, 15:50
chiedevo una cosa del genere da un pò qui sol forum.La leggerò con molta attenzione.Grazie!

franksisca
25-06-2009, 16:22
:ave: :ave: :ave: :ave: che dire

banryu79
29-06-2009, 09:57
Letto tutto: ottima guida per cominciare, c'è tutto quello che serve per partire a scrivere interfacce grafiche Swing senza strapparsi i capelli perchè in esecuzione l'interfaccia sembra lenta e poco responsive, o peggio, non va proprio.
Caldamente consigliata, ottima sintesi delle basi.

A gusto personale mi sarebbe piaciuto vedere almeno un esempio di utilizzo di uno SwingWorker, che so, per esempio per il caricamento di un file pesante con visualizzazione di una progress bar durante il processo di loading e apertura automatica di una text area con il file caricato al termine dell'operazione.
Ma capisco che va oltre lo scopo del tutorial.

malocchio
04-08-2009, 17:03
Anch'io sto leggendo questo tutorial, davvero utile (lo farò leggere anche alla prof...)!!

Solo una cosa: non ho mai sentito il congiuntivo del verbo "dovere" coniugato come "io deva"... è italiano corretto ma io ho sentito sempre e solo la forma "debba". Quindi ogni volta che la trovo all'interno faccio una faccia così :mbe:

:D Ciao

Giovanni Tavella
26-07-2010, 17:44
PGI-Bis questa guida è utilissima, se avessi una casa editrice pubblicherei questa guida :) .

Grazie

Khanattila
27-01-2011, 09:47
Sto facendo un Applet e questa parte di codice mi crea un'altra classe, il che è tecnicamente corretto.
Il problema è che me la rinomina, un volta compilata, in nomeclasse$1.class e molti siti web non riconoscono il carattere $, quindi l'applet diventa ingestibile :mad:

esegui.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
eseguiMouseClicked(evt);
}
});


Come faccio a definire il nome della classe? :mc:

Khanattila
27-01-2011, 15:19
Sto facendo un Applet e questa parte di codice mi crea un'altra classe, il che è tecnicamente corretto.
Il problema è che me la rinomina, un volta compilata, in nomeclasse$1.class e molti siti web non riconoscono il carattere $, quindi l'applet diventa ingestibile :mad:



Come faccio a definire il nome della classe? :mc:

Come non detto, ho risolto :)

Explode18
19-03-2011, 10:57
Sto scaricando :) speriamo bene

Blackskull182
03-04-2012, 11:38
Grazie mille

malocchio
03-04-2012, 11:44
Meno male che mi sono iscritto a questa discussione :doh:

fireb86
01-06-2012, 13:11
Appena scaricata, grazie mille!

gsa390
24-10-2012, 08:18
Grazie mille mi serviva!

Cicciolinuks
23-06-2013, 16:59
Scrivo più per ringraziarti che per altro. Questa discussione è vecchia ma tremendamente attuale.

Lascio un paio di cosette, ma per non fare la figura del pignolo: non le considero importanti, tuttavia se fai una riedizione o vuoi fare un'altra guida simile su un altro argomento, puoi pensarci su.

Procediamo:
Farebbero comodo i numeri di pagina per ricordarsi "a che punto sono rimasto ieri"; magari in basso a centro per facilitare la stampa fronte-retro (e suggerendo questo tipo di stampa a chi proprio vuole stampare, per risparmiare carta).

E' -> È (non è importante, ma basta una trova e sostituisci tenendo conto delle maiuscole... praticamente gratis :) e fa la sua porca figura)

Le classi col main si chiamano Main (almeno fin dove sono arrivato io), essendo pubbliche questo non aiuta chi come me ha creato un pacchetto in un progetto Eclipse dove mette ad uno ad uno i file di esempio, che dovrebbero avere lo stesso nome... Un'idea potrebbe essere: Main1, Main2... Mi rendo conto della noia e fastidio di fare una cosa del genere, e ti capisco se la ignori.

Particolari qua e là:

pag. 10: c'è un esempio in cui un metodo si chiama start(); ciò crea confusione con la start di un thread (tra l'altro c'è anche il metodo Thread.start() nello stesso esempio).
Sarebbe consigliabile un nome diverso, ed in generale evitare nomi come start, run...

pag. 13:
private JPanel contentPane = new JPanel(new BorderLayout());
perché contentPane e non contentPanel? La metto perché non ho mai capito la differenza tra oggetti pane e panel, e questi nomi scambiati mi confondono ancora di più (a proposito, se qualcuno volesse chiarirmi la differenza tra pane e panel...)

pag. 14: "le classi finestrelle di messaggio" -> "le classiche ..."

-----
Grazie ancora e scusa le chiacchiere :) Perdona noi "comuni mortali" che cerchiamo il pelo nell'uovo... non vuole essere affatto una critica e me la sono tenuta per un po' prima di decidermi a scrivere...

In ogni caso mi è di grande aiuto, quindi mi unisco a qualcuno sopra:
:ave: :ave: :ave: :ave:

style49
05-02-2014, 11:17
Ti ringrazio per la guida.
Ho studiato bene all'università questo Framework ma devo dire che se avessi avuto queste dispense prima, molto probabilmente ci avrei messo la metà del tempo per passare l'esame.
Adesso userò i tuoi sforzi per fare un refresh e riprendere un po' l'argomento.

michelexeno
10-09-2014, 18:47
Grazie mille per la guida!!

cest31
13-02-2015, 14:35
In primis grazie tante per la guida,, veloce e semplice, per chi non deve fare niente di complesso è ottima..
Anche se un po vecchio ti segnalo delle cose che fanno storcere il naso (almeno a me), incotrate fino ad adesso:
Le pagine non numerate,
a pag 33 nel codice d'esempio hai utilizzato un layout che non hai spiegato.

miky1989
24-03-2016, 09:33
Complimenti per la guida, davvero utilissima per chi mette mano per la prima volta a Swing !!

Volevo chiederti se magari sarebbe possibile espanderla un pochino, magari aggiungendo un piccolo esercizio come esempio.. come l'inserimento di file all'interno di un database (tramite pulsante) e/o viceversa.

L'esempio più banale, sarebbe la registrazione di un utente e la visualizzazione di tutti i dati (inseriti nel database) tramite il click di un bottone.
[INSERT E SELECT SQL]

Spero non sia problematico, in caso positivo questa guida diventerà ancora più utile :)