Hi,
ich zeichne mit Graphics2D ein Rechteck. In das Rechteck soll jetzt ein Text stehen. Da der Text nicht über die Ränder des Recheckes hinausragen soll, muss der Text irgendwie abgeschnitten werden. Folgendes habe ich schon:
Wenn ich das so mache, wird der Text über die Ränder des Rechteckes hinaus geschrieben. Aber wie kann ich jetzt den Text auf die richtige Länge abschneiden? Ich hab auch schon mit folgendem herumgespielt.
Ich kann hier zwar die Länge ermitteln, aber abschneiden kann ich den Text nicht. Ich bräuchte hier sowas wie txL.setWidth() oder txL.setAdvance().
Hat jemand da einen brauchbaren Vorschlag?
ciao Capricorn.
ich zeichne mit Graphics2D ein Rechteck. In das Rechteck soll jetzt ein Text stehen. Da der Text nicht über die Ränder des Recheckes hinausragen soll, muss der Text irgendwie abgeschnitten werden. Folgendes habe ich schon:
Code:
//Initialisierung der Variablen spare ich mir hier.
Graphics2D g2....;
Rectangle r ....;
String label = "Ziemlich langer Text, der nicht ins Rechteck passt";
//Rechteck ist bereits gezeichnet, es soll jetzt der Text gezeichnet werden.
g2.drawString(label, r.x+5, r.y+15);
Wenn ich das so mache, wird der Text über die Ränder des Rechteckes hinaus geschrieben. Aber wie kann ich jetzt den Text auf die richtige Länge abschneiden? Ich hab auch schon mit folgendem herumgespielt.
Code:
TextLayout txL = new TextLayout(label, g2.getFont(), g2.getFontRenderContext());
System.out.println("Advance: " + txL.getAdvance());
Ich kann hier zwar die Länge ermitteln, aber abschneiden kann ich den Text nicht. Ich bräuchte hier sowas wie txL.setWidth() oder txL.setAdvance().
Hat jemand da einen brauchbaren Vorschlag?
ciao Capricorn.