Wie berechnet man die Länge (in Pixel) eines Strings in Java?
Am besten ohne Swing.
BEARBEITEN: Ich möchte den String mit drawString () in Java2D zeichnen und die Länge für den Zeilenumbruch verwenden.
java
string-length
eflles
quelle
quelle
Antworten:
Wenn Sie nur AWT verwenden möchten, verwenden Sie
Graphics.getFontMetrics
(optional die Schriftart angeben , für eine nicht standardmäßige), um eine zu erhaltenFontMetrics
und dannFontMetrics.stringWidth
die Breite für die angegebene Zeichenfolge zu ermitteln.Wenn Sie beispielsweise eine
Graphics
Variable namens habeng
, verwenden Sie:Für andere Toolkits müssen Sie uns weitere Informationen geben - es wird immer Toolkit-abhängig sein.
quelle
Graphics
, nichtFontMetrics
. Aber Sie rufen anToolkit.getFontMetrics
, was in der Tat veraltet ist und worüber diese Methode nicht spricht ... Sie müssen bei solchen Dingen wirklich vorsichtig sein, insbesondere bevor Sie über das Melden von Fehlern sprechen ...Toolkit.getFontMetrics
stattdessen vorschlagen .Es muss nicht immer vom Toolkit abhängig sein oder es muss nicht immer der FontMetrics-Ansatz verwendet werden, da zuerst ein Grafikobjekt abgerufen werden muss, das in einem Webcontainer oder in einer kopflosen Umgebung fehlt.
Ich habe dies in einem Web-Servlet getestet und es berechnet die Textbreite.
Fügen Sie diesen Dimensionen die erforderlichen Werte hinzu, um den erforderlichen Rand zu erstellen.
quelle
Verwenden Sie die Methode getWidth in der folgenden Klasse:
quelle
Und jetzt zu etwas ganz anderem. Das Folgende nimmt eine ariale Schriftart an und macht eine wilde Vermutung basierend auf einer linearen Interpolation von Zeichen gegen Breite.
Interessant, aber vielleicht nicht sehr praktisch.
quelle
Ich persönlich habe nach etwas gesucht, mit dem ich den mehrzeiligen Zeichenfolgenbereich berechnen kann, damit ich feststellen kann, ob der angegebene Bereich groß genug ist, um die Zeichenfolge zu drucken - unter Beibehaltung einer bestimmten Schriftart.
quelle