anonimo34 ha scritto:
Ciao non mi potresti dire invece cosa c'è che non và nel codice in questo tutorial che era quello che avevo scritto?Cosi risolvo e chiudo?(può essere utile anche ad altri):https://www.youtube.com/watch?v=bv4PBdhoo4o&t=5
Beh, intanto non va bene creare un nuovo ImageIcon all'interno del paintComponent ogni volta. Potrebbe aver senso (in caso limite) farlo lì dentro ma solo se lo si fa una volta sola, tenendo un campo di istanza e facendo: se il campo è null, crea il ImageIcon e assegnalo al campo. Così avviene una volta sola. Ma crearlo ad OGNI invocazione di paintComponent no.
Nel tuo codice iniziale, non so se hai copiato male tu dal tutorial oppure se l'hai modificato apposta, ma hai messo
public void paint(Graphics g)(
Ridefinire il paint(Graphics) è perfettamente e tecnicamente possibile, semplicemente il paint (rispetto al paintComponent) è molto più "a monte" nella catena di disegno. Ma il paint nei componenti Swing sarebbe da ridefinire solo se "sai" davvero quali sono le implicazioni. Se non le sai ... meglio ridefinire paintComponent.
Poi comunque fa vedere che estende il JPanel con una anonymous inner-class. Assolutamente lecito e tecnicamente ok. Ma così quel pannello custom non è riutilizzabile e comunque allunga e rende meno leggibile il resto. Meglio sarebbe fare una classe a parte.
Insomma, "tutorial" come quelli (ammesso che vogliamo chiamarli tali) sono spesso più fuorvianti che altro, specialmente per chi inizia e già le idee chiare non le ha ..