Mi sa che stiamo parlando di cose diverse.
Se per "disegno" intendi dire che fai l'override di paintComponent() e usi Graphics, allora tutto questo non ti serve a nulla. Un oggetto è scrollabile in base al suo contenuto (ovvero, in base a quanti componenti esso contiene). Il tuo oggetto ha un contenuto vuoto: non contiene alcun componente, ma l'unico "contenuto" è sé stesso (il disegno è, appunto, il modo in cui il componente si presenta).
Se tutto ciò che ti serve è avere un componente che si scrolla, ma che non deve contenere nulla, allora è sufficiente un JPanel semplice. Tutto ciò che devi tenere a mente sono alcuni concetti:
1) Ogni volta che il componente deve essere ridisegnato (dopo uno scroll, dopo un ridimensionamento, dopo uno spostamento, dopo una sovrapposizione) viene richiamato il paintComponent(), che quindi deve ritornare a ridisegnare l'intero pannello
2) Se vuoi vedere l'effetto dello scroll, allora il tuo pannello deve avere una dimensione (impostata con setPreferredSize() ) più grande della dimensione del suo contenitore (il JScrollPane)
Quindi, lascia perdere la mia classe... ha altri scopi.
Torna ad estendere JPanel
Imposta una dimensione molto grande con setPreferredSize()
Aggiungi il tuo oggetto ad un JScrollPane e aggiungi questo alla finestra, come nel codice precedente.
Ciao.
Ciao.![]()




Rispondi quotando