Graphics.drawString (Graphics2D.drawString) Y-Problem

Status
Nicht offen für weitere Antworten.

s03

Mitglied
Hallo allerseits,
wie der Titel schon sagt, habe ich ein "kleines" Problem mit "drawString".
Wenn ich versuche ein String auf einem Grafikkontext auszugeben:

Code:
//Hier
@Override
public void paint(Graphics g){
}
//oder hier
void TuWas(){
	BufferedImage img=BufferedImage(200,200);
	Graphics2D g=img.createGraphics();
}
habe ich ein Problem mit der Y-Koordinate. Und zwar ist der String bei:

Code:
g.translate(0, 0);				
g.drawString("Test", 0, 0);
überhaupt nicht sichtbar. Bei:

Code:
g.drawString("Test", 0, 1);
Sehe ich die letzten unteren Pixels des Textes. Erst bei:

Code:
g.drawString("Test", 0, 7);
sehe ich den ganzen Text in Abhängigkeit von der Schriftgrösse (FontSize=10).
Um den Text "richtig" auszugeben versuche ich zunächstmal den OffSet zu berechnen. Aber das kann doch nicht sein!?
Habe ich was nicht berücksichtig oder was falsch verstanden (bin neu in Java).

Mit:

Code:
g.drawRect(0, 0, 40, 40);
habe ich keine Probleme.
 

The_S

Top Contributor
naja, es wird eben an der Stelle, die du als Y-Koordinate angibst, angefangen dein String zu zeichnen. Und es ist doch logisch, dass der erste "Punkt" über dieser Y-Koordinate ist. Dein Text wird ja auch nicht komplett vor die X-Koordinate geschrieben ;) .
 

s03

Mitglied
Das heißt, dass im Falle vom String von links nach rechts und von unten nach oben gezeichnet wird? OK. jetzt weiß ich bescheid.
Bin von Delphi und C# gewonnt auch bei Strings mit 0,0 anzufangen.

Danke dir für eine schnelle Antwort.
 

s03

Mitglied
So, für andere Umsteiger, die auch mit "Y-Koordinate" Probleme haben :). Bei "drawString" sollte man die so genannte Baseline beachten.
Ich habe es im Moment so gelöst, dass ich ein Y-Offset wie folgt berechne:
Code:
YOffset=FontMetrics.getAscent()-FontMetrics.getDescent();
Ansonsten kann man noch solche Sachen anschauen:

TextLayout.draw(Graphics2D, ...)
Graphics2D.drawGlyphVector()

zu finden in:
Advanced2D-J1-2005.pdf
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Hashmap mit 2D Graphics Spiele- und Multimedia-Programmierung 7
FunnyO Graphics fillOval weiche Kanten Spiele- und Multimedia-Programmierung 8
kaoZ Graphics Objekt liefert null Spiele- und Multimedia-Programmierung 14
S Graphics Objekt weiterreichen? Spiele- und Multimedia-Programmierung 4
Steev Eigener Graphics-Context Spiele- und Multimedia-Programmierung 10
G Wie bekomme ich einen Punkt (Graphics) Spiele- und Multimedia-Programmierung 2
K stringWidth bei Graphics von JPanel und Printer unterschiedl Spiele- und Multimedia-Programmierung 4
P Graphics Klasse Spiele- und Multimedia-Programmierung 3
N Performance Problem bei mit Graphics Spiele- und Multimedia-Programmierung 6
V Graphics oder Graphics2D Zeichenfunktion gesucht? Spiele- und Multimedia-Programmierung 4
G Einen gif oder jpg Datei aus einem Graphics Objekt o. JFrame Spiele- und Multimedia-Programmierung 2
O transparente farbe in Image mit Graphics Spiele- und Multimedia-Programmierung 8
G Graphics bei Java aufteilen Spiele- und Multimedia-Programmierung 3
C Graphics 2D Zeichnen Spiele- und Multimedia-Programmierung 4
F einzelne Polygone(Graphics) schneller als and. Fig. zeichnen Spiele- und Multimedia-Programmierung 3
T drawstring alternative Spiele- und Multimedia-Programmierung 4
S drawString Befehl nicht ausgeführt nach transforming Spiele- und Multimedia-Programmierung 5
R g2.drawString() macht keine neue Zeile Spiele- und Multimedia-Programmierung 5
M JPanel mit Graphics2D Objekten mit JScrollpane Spiele- und Multimedia-Programmierung 6
H Screenshot einer Graphics2D Anwendung erstellen Spiele- und Multimedia-Programmierung 6
S Graphics2D Oval vs. Rect -Performance Spiele- und Multimedia-Programmierung 17
X Polygon in Graphics2D löschen Spiele- und Multimedia-Programmierung 4
A Graphics2D. repaint() Spiele- und Multimedia-Programmierung 12
M Graphics2D problem Spiele- und Multimedia-Programmierung 5
H Größenänderung von Graphics2D Strings bzw Fonts Spiele- und Multimedia-Programmierung 2
G Paint mit Graphics2D? Spiele- und Multimedia-Programmierung 8
B JAVA Graphics2D Problem das mich in den Wahnsinn treibt Spiele- und Multimedia-Programmierung 3
B Keine Graphics2D Klasse unter J# .Net??? Spiele- und Multimedia-Programmierung 6

Ähnliche Java Themen


Oben