PLAYER.RUNNER ha scritto:
Grazie mille per la risposta!
ora, perdonatemi l'ignoranza, ma se SimpleBox estende JButton io creando un nuovo costruttore devo metterci qualcosa di particolare perchè continui a funzionare come JButton oppure semplicemente ne creo uno nuovo
Quando una classe estende un'altra classe, il costruttore della superclasse viene
sempre richiamato, quindi se estendi JButton la tua classe avrà tutte le funzioni di base di un JButton, che poi tu puoi ovviamente modificare o solo ampliare.
Se la classe estesa ha un costruttore che non richiede alcun parametro, allora la chiamata al costruttore di default (che fai con super()) non è obbligatoria, e viene "aggiunta" in automatico.
Ma prova a dichiarare una classe con un unico costruttore che richiede un parametro (ad esempio un intero) e a estenderla senza richiamare super(int valore), riceverai un errore in compilazione, perché non può mica inventarsi lui i parametri da passare alla superclasse!
PLAYER.RUNNER ha scritto:
comunque quello che devo fare è creare una griglia di queste SimpleBox in cui ognuna può o non può contenere una Unit, l'obiettivo finale sarebbe quello di settare un attributo focused nella classe Unit a true quando la casella corrispondente viene cliccata
Ok allora va bene che la tua classe contenga all'interno un riferimento a un oggetto Unit.Tieni presente che:
a) Se Unit è
solo una classe di appoggio per il tuo bottone, cioè non è utilizzata da nessuna altra classe, allora sarebbe conveniente "innestarla" all'interno della classe SimpleBox, non so se tu l'abbia mai fatto ma se è questo il caso potresti dare un'occhiata a cosa sia una nested class.
b) Se lo scopo di Unit è solo avere quella variabile focused o poco più, allora puoi tranquillamente lasciare quella informazione solo all'interno di SimpleBox, se invece deve assolvere qualche compito più specifico o memorizzare molte variabili, a quel punto è sensato e consigliabile avere un oggetto specifico come stai facendo ora.