Newsgroup: it.comp.java
Titolo: Lunghezza di una stringa in pixels

Salve a tutti, dovendo centrare nell'Applet una frase (soggetta a
cambiamento di lunghezza) ho tentato con questo codice (evitando di
usare l`oggetto Label)...
public void paint(Graphics g) {
	String msg = "test test test test test test"
	int sl, aw, df;
	sl = msg.length() / 2;
	aw = size().width;
	df = aw - sl;
	g.drawString(msg, df, 50);
}
All`esecuzione dell`Applet mi sono accorto che msg.length() ritorna il
numero dei caratteri della stringa e non la sua lunghezza in pixel.
Quindi ovviamente la frase si posiziona sul bordo visualizzando solo i
primi 2-3 caratteri.
C`e` un metodo (evitando di usare l`oggetto Label) simile al mio
esempio che consente di centrare una frase in un`Applet? Oppure c`e`
un metodo per ritornare la lunghezza di una stringa in pixels?
Grazie in anticipo ad ognuno che possa dare un consiglio.
Ciao
 ________ _____                     ______
 ___  __ \___(_)_____ _____________ ___  /
 __  / / /__  / _  _ \__  ___/_  _ \__  / 
 _  /_/ / _  /  /  __/_(__  ) /  __/_  /  
 /_____/  /_/   \___/ /____/  \___/ /_/   
 ________                                 
 ___  __ \______ ___      _______ ________
 __  /_/ /_  __ \__ | /| / /_  _ \__  ___/
 _  ____/ / /_/ /__ |/ |/ / /  __/_  /    
 /_/      \____/ ____/|__/  \___/ /_/     
 
------------------------------------------
We live in the background and we enjoy it!
------------------------------------------
 
To reply in e-mail revome "DIESPAMMERS" from the address.

Nel package "java.awt.FontMetrics" ci sono diversi metodi per ottenere la
lunghezza in pixel di una stringa, dato il suo font. Io non l'ho mai
usato, pero' puo' essere un buon indizio. Consulta la documentazione
on-line del JDK1.1.x sul sunsite piu' vicino (per esempio a Milano
http://sunsite.dsi.unimi.it
)
Ecco un estratto:
--------------------------------
 public int stringWidth(String str)
    Returns the total advance width for showing the specified String  in
this Font.  The advance width is the amount by which the current point is
moved from one character to the next in a line of text.
Parameters:
 str - the String to be measured
See Also:
charsWidth, bytesWidth
-----------------------------
Ciao.
Alexis Paul Bertolini, Milan University, Italy


 wrote:
:Nel package "java.awt.FontMetrics" ci sono diversi metodi per ottenere la
:lunghezza in pixel di una stringa, dato il suo font. Io non l'ho mai
:usato, pero' puo' essere un buon indizio.
:[...]
Ho cercato in giro fra le classi un metodo del genere ma si vede che
ho cercato nei posti sbagliati!
Grazie mille dell`aiuto, cio` che mi hai indicato funzionera`
perfettamente!
Ciao!


DieselPower (diese...@bigfoot.comDIESPAMMERS) wrote:
: C`e` un metodo (evitando di usare l`oggetto Label) simile al mio
: esempio che consente di centrare una frase in un`Applet? Oppure c`e`
: un metodo per ritornare la lunghezza di una stringa in pixels?
: Grazie in anticipo ad ognuno che possa dare un consiglio.
: Ciao
Devi usare la classe FontMetrics:dichiari una variabile di tipo FontMetrics
e la inizializzi utilizzando il metodo getFontMetrics() nella classe
Graphics (es. nel metodo paint scrivi FontMetrics fm=g.getFontMetrics())
La classe FontMetrics contiene metodi per quello che ti serve.
Ciao.
Fabio.