In un mio programma java ho l'esigenza di crearmi un metodo che permetta la scrittura grafica di una stringa, tramite graphics in più righe.
In pratica devo scrivere (disegnare) una stringa all'interno di un rettangolo, se una parola non entra va a capo..
Ho creato un mio metodo così fatto:
il parametro 'g' è relativo a un JPanel, ecco quindi spiegato il perchè faccio quelle somme sulla x del disegno.codice:private void disegnaARighe (Graphics g , Rectangle rect , String scritta) { g.setColor(Color.BLACK); int l = (int)rect.getWidth(); String [] parole = scritta.split(" "); int tmp = 0; int xCorrente = 0; int yCorrente = g.getFontMetrics().getHeight(); while (tmp < parole.length) { if (g.getFontMetrics().stringWidth(parole [tmp]) < (l - xCorrente)) { g.drawString (parole [tmp] + " " , rect.x + xCorrente , rect.y + yCorrente); xCorrente += g.getFontMetrics().stringWidth(parole [tmp] + " "); tmp++; }else { xCorrente = 0; yCorrente += g.getFontMetrics().getHeight() + 2; continue; } } }
Comunque il problema è che ho notato che il metodo va in loop infinito ma non riesco a capire perchè..voi riuscite a trovare l'errore?

Rispondi quotando