PDA

View Full Version : [JAVA]Swing-Come creare una griglia trasparente da posizionare su uno sfondo


stgww
03-06-2013, 18:38
Ciao a tutti, premetto che sono un neofita e anche se mi sono messo a cercare per tutto il web, non sono riuscito a capire come fare una cosa del genere:
voglio mettere uno sfondo (tipo scacchiera) come una semplice immagine jpeg, poi sopra voglio crearci una griglia su cui posizionare i pedoni degli scacchi per farli muovere.
Creare questi due in modo separato non è complicato, ma mettere lo sfondo sotto la griglia non lo capisco, ho provato a cercare e mi sembra che il componente che potrebbe fare al caso mio potrebbe essere un JLayeredPane dove avrei messo come DEFAULT_LAYER lo sfondo e sul PALETTE_LAYER la scacchiera (se ho capito bene....ma non penso visto che non funziona..).
Sapete consigliarmi cosa poter fare?
Fino ad ora ho creato un JPanel con lo sfondo e un'altro JPanel con la griglia, qualche metodo furbo?
Grazie ;)

banryu79
04-06-2013, 15:22
Scusa, non potresti fare un custom rendering su un JPanel personalizzato?
Nel metodo paintComponent prima disegni lo sfondo (che può anche essere un'immagine), poi disegni quello che vuoi (lo disegni sopra lo sfondo quindi) che sia la "griglia" piuttosto che i "pezzi"...

Se ti serve aiuto per capire i concetti relativi al custom rendering con Java2D puoi cominciare con questa trail:
http://docs.oracle.com/javase/tutorial/2d/index.html

stgww
04-06-2013, 15:45
Scusa, non potresti fare un custom rendering su un JPanel personalizzato?
Nel metodo paintComponent prima disegni lo sfondo (che può anche essere un'immagine), poi disegni quello che vuoi (lo disegni sopra lo sfondo quindi) che sia la "griglia" piuttosto che i "pezzi"...

Se ti serve aiuto per capire i concetti relativi al custom rendering con Java2D puoi cominciare con questa trail:
http://docs.oracle.com/javase/tutorial/2d/index.html

Grazie, alla fine ho trovato un esempio di un caso analogo al mio sempre usando i layered pane, in ogni caso terrò conto della dritta se mi dovesse servire più avanti!