Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Io ho testato il metodo con una "scritta" di 6 parole (la frase "Ciao mamma guarda come mi diverto") in un rettangolo (Rectangle (100,100,100,100) ) e con Font quello di default..in questo test ho avuto questo comportamento, secondo me, anomalo:
al primo paint la scritta si vede perfettamente a righe come
poi (vi ho introdotto che stessi lavorando in una GUI di una mia applicazione) ho fatto un click in un'area di un rectangle che faccio funzionare da bottone disegnato, al click in questo bottone viene semplicemente modificato qualche parametro (tipo una variabile intera per la decisione di quale schermata mostrare, qui ci saranno altri piccoli disegni) e poi si richiama il paintImmediately su tutta l'area del JPanel..qui scatta il problema, parte il loop che tramite piccolo debug ho notato fermarsi (per fermarsi intendo il fatto che itera sempre su questo passo, il senso è un po' l'opposto del significato letterale della parolacodice:ciao mamma guarda come mi diverto) sulla "1" parola (per 1 si intende la 2a parola poichè si parte da 0) ma la frase, il rettangolo e il font sono gli stessi del successo di prima..non riesco proprio a capire dove stia il problema!
Ho capito dove sta l'errore: Andbin ci hai preso in pieno, nella nuova schermata cambio il font (Arial bold a 18) e quindi avviene che ci sia qualche parola ("mamma") che è più lunga del rettangolo..risolverò con qualche accortezza in più
Grazie!![]()
Le possibilità sono almeno 2:
- disegni comunque la parola per intero anche se "sfora" del width massimo possibile (ammesso che ti vada bene come "male minore"). Nota che se non vuoi che si veda la eccedenza fuori dal rettangolo, puoi anche sfruttare il "clipping" sul Graphics. Ovviamente poi non è molto leggibile la frase ma ...... beh, è una scelta.
oppure
- aggiungi la logica per spezzare la parola. E qui ci potrebbero essere anche diverse varianti. Nel senso che come caso estremo si può anche arrivare a fare la "sillabazione" seguendo le regole della lingua usata.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet