S
SilentWater01
Gast
ich komme momentan nicht weiter. Ich möchte einen Text nach einer Linie ausrichten. Dafür habe ich hier im Forum auch einen schönen Beispielcode gefunden.
Nur wird der Text nicht gezeichnet. Na gut, dann versuch ich das halt ohne rotieren und transformieren und habe diese Befehle auskommentiert. Trotzdem wird es nicht gezeichnet. Doch als ich auch die setTransform befehle auskommentiert habe, dann wird der text gezeichnet. Zwar nicht an der Linie ausgerichtet, doch immerhin gezeichnet.
Allerdings sollte ich den text schon anhand der Linien ausrichten. Und es kann ja nicht sein, dass der text nur deswegen nicht gezeichnet wird, weil ich setTransform benutze.
Ich hab auch schon versucht, nach dem drawString Befehl einen dispose() aufruf zu machen, doch der bringt alles durcheinander, der rest sollte schon im normalen koordinatensystem gezeichnet werden.
Kann mir jemand weiterhelfen, warum der text nicht gezeichnet wird, wenn ich mit setTransform arbeite, oder gibt es alternativen den text an einer Linie auszurichten?
Code:
public void paint(Graphics g, Edge egde, int x1, int y1, int x2, int y2) {
IHierarchicElement element = (IHierarchicElement) egde;
String streetName = (String) element.getAttributeValue("official_Name.string");
if(!streetName.equals("")){
Graphics2D g2D = (Graphics2D) g;
g2D.setColor(Color.BLACK);
// Koordinatensystem drehen
AffineTransform alt = g2D.getTransform();
AffineTransform neu = new AffineTransform();
neu.translate(x1,y1);
neu.rotate(Math.atan((1.0 * y2 - y1) / (x2 - x1)));
g2D.rotate(Math.atan((1.0 * y2 - y1) / (x2 - x1)));
g2D.setTransform(neu);
// Text einzeichnen
FontMetrics f = g2D.getFontMetrics();
g2D.drawString(streetName, 0, 0);
// Koordinatensystem zurücksetzen
g2D.setTransform(alt);
}
}
Nur wird der Text nicht gezeichnet. Na gut, dann versuch ich das halt ohne rotieren und transformieren und habe diese Befehle auskommentiert. Trotzdem wird es nicht gezeichnet. Doch als ich auch die setTransform befehle auskommentiert habe, dann wird der text gezeichnet. Zwar nicht an der Linie ausgerichtet, doch immerhin gezeichnet.
Allerdings sollte ich den text schon anhand der Linien ausrichten. Und es kann ja nicht sein, dass der text nur deswegen nicht gezeichnet wird, weil ich setTransform benutze.
Ich hab auch schon versucht, nach dem drawString Befehl einen dispose() aufruf zu machen, doch der bringt alles durcheinander, der rest sollte schon im normalen koordinatensystem gezeichnet werden.
Kann mir jemand weiterhelfen, warum der text nicht gezeichnet wird, wenn ich mit setTransform arbeite, oder gibt es alternativen den text an einer Linie auszurichten?