drawString Befehl nicht ausgeführt nach transforming

Status
Nicht offen für weitere Antworten.
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.

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?
 

silentwater

Mitglied
Oh ... Zeile 16 ist zuviel. Die hat sich eingeschlichen da ich verschiedene Sachen getestet habe. Die beschriebenen fehler traten ohne diese Zeile auf
 

kaie

Bekanntes Mitglied
Weiter unten in besagtem Thread gab es damals noch eine Korrektur, die Du anscheinend überlesen hast. Bau das mal ein, vielleicht klappt es ja dann:

Code:
AffineTransform neu = g2d.getTransform(); 
AffineTransform alt = (AffineTransform)neu.clone();

Ist es eigentlich gewollt, dass Du den Text immer an den ersten Knoten linksbündig und nicht zentriert in die Linienmitte schreibst?
 

silentwater

Mitglied
danke, dass habe ich wirklich übersehen.

Das der Text linksbündig ist, war keine Absicht. Ist entsatnden, als ich einfach mit dem Code experimentiert habe. Auf jeden Fall vielen Dank
 
G

Guest

Gast
SilentWater01 hat gesagt.:
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.

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?
 
S

SlaterB

Gast
bei mir gehts..

Code:
import java.awt.Color;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.AffineTransform;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class TestGUI extends JFrame {
	public TestGUI() throws Exception {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		getContentPane().add(new MyPanel());
		setSize(300, 300);
		setVisible(true);
		
	}

	public static void main(String[] args) throws Exception {
		new TestGUI();

	}

	class MyPanel extends JPanel  {
		public MyPanel() {
			setBackground(Color.YELLOW);
		}
		public void paint(Graphics g) {
			super.paint(g);
			String streetName = "test";

			Graphics2D g2D = (Graphics2D) g;
			g2D.drawString(streetName, 50, 100);
			g2D.setColor(Color.BLACK);
			int x1 = 10;
			int x2 = 50;
			int y1 = 10;
			int y2 = 50;

			// 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);
		}
	}
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Graphics.drawString (Graphics2D.drawString) Y-Problem Spiele- und Multimedia-Programmierung 4
T drawstring alternative Spiele- und Multimedia-Programmierung 4
R g2.drawString() macht keine neue Zeile Spiele- und Multimedia-Programmierung 5
B Programmieren wie der Befehl /ban in Minecraft geblockt wird aber nicht /ban mit einem Argument Spiele- und Multimedia-Programmierung 1
B Hilfe bekomme den IF befehl nicht hin Spiele- und Multimedia-Programmierung 10
B Bild wird nicht geladen Spiele- und Multimedia-Programmierung 4
Fabel TicTacToe MiniMax Algorithmus geht nicht Spiele- und Multimedia-Programmierung 4
ThoraxLaneus Minecraft MCP-Client mit Optifine fertig machen in IntelliJ klappt nicht ganz Spiele- und Multimedia-Programmierung 6
K Mein Jump and Run charakter bewegt sich nicht mehr rückwärts... Spiele- und Multimedia-Programmierung 0
P Pokemon Spiel Funktioniert nicht ? Spiele- und Multimedia-Programmierung 3
D MIDIdevice open funktioniert nicht Spiele- und Multimedia-Programmierung 1
Mika_MDF Minecraft Eclipse startet Minecraft nicht? Spiele- und Multimedia-Programmierung 23
H Musik Datei lädt nicht? Spiele- und Multimedia-Programmierung 8
A Kollision funktioniert nicht richtig bei zu schneller Geschwindigkeit des Spielers Spiele- und Multimedia-Programmierung 0
JeremyStarTM Minecraft Minecraft Spigot Server akzeptiert JAR-Version nicht Spiele- und Multimedia-Programmierung 8
K Das Leerzeichen der Tastatur wird nicht gleichgesetzt mit dem Leerzeichen aus der Text Datei Spiele- und Multimedia-Programmierung 5
P Teamspeak interface mit JFrame funktioniert nicht Spiele- und Multimedia-Programmierung 3
coolian slick lwjgl text darstellen mit UnicodeFont funktoniert nicht? Spiele- und Multimedia-Programmierung 11
Z Minecraft Multiplayer geht nicht Spiele- und Multimedia-Programmierung 2
L Minecraft 1.7.10 Server startet nicht Spiele- und Multimedia-Programmierung 1
R Memory - Nicht alle Button lassen sich aktivieren? Spiele- und Multimedia-Programmierung 1
D Kollision funktioniert unten aber nicht oben Spiele- und Multimedia-Programmierung 4
C Java findet FluidSynth nicht Spiele- und Multimedia-Programmierung 2
N der Player bewegt sich nicht Spiele- und Multimedia-Programmierung 14
D Java Bild bewegen funktioniert nicht Spiele- und Multimedia-Programmierung 8
Damtonix Gameloop funktioniert nicht! Spiele- und Multimedia-Programmierung 6
N Warum tut der Gegner nicht das was er soll? Spiele- und Multimedia-Programmierung 13
N Warum ist das Fenster nicht schwarz? Spiele- und Multimedia-Programmierung 26
A Dateifehler - Öffnet nicht Spiele- und Multimedia-Programmierung 7
temi libGDX Box2d ApplyTorque() funktioniert nicht Spiele- und Multimedia-Programmierung 1
R Laufbewegung geht nicht.. Spiele- und Multimedia-Programmierung 1
J OpenGL Bild wird nicht richtig angezeigt Spiele- und Multimedia-Programmierung 2
S GetBufferStrategy-Methode wird nicht angezeigt Spiele- und Multimedia-Programmierung 6
M KeyListener funktioniert nicht während Timer läuft Spiele- und Multimedia-Programmierung 26
F vlcj läuft nicht exportiert, aber in Eclipse Spiele- und Multimedia-Programmierung 2
A MouseListener ändert nicht das Lable Icon. Spiele- und Multimedia-Programmierung 2
G LWJGL Rendert nicht Spiele- und Multimedia-Programmierung 3
A Spielball bewegt sich nicht richtig, prallt falsch ab Spiele- und Multimedia-Programmierung 7
S KeyEvent funktioniert nicht, wenn Buttons dem Frame hinzugefügt werden Spiele- und Multimedia-Programmierung 7
Blender3D VLCJ Video lässt sich nicht mehr abspielen nach mysql Installation Spiele- und Multimedia-Programmierung 1
J Programm kann Audio Datei nicht finden Spiele- und Multimedia-Programmierung 7
Viktim Snake - Schlange wächst nicht Spiele- und Multimedia-Programmierung 3
J Mensch Ärgere Dich nicht - Künstliche Intelligenz Spiele- und Multimedia-Programmierung 2
C Export als .jar funktioniert nicht richtig (JAVA 3D) Spiele- und Multimedia-Programmierung 5
L Mensch ärgere dich nicht Spiele- und Multimedia-Programmierung 9
Polarfuchs Status von Midi Datei(wird gerade abgespielt oder nicht) Spiele- und Multimedia-Programmierung 0
A Bild(sequenz) wird nicht geladen Spiele- und Multimedia-Programmierung 1
4 AudioSystem.write() wirft IllegalArgumentException, obwohl dies eig. nicht passieren dürfte Spiele- und Multimedia-Programmierung 2
V Methoden werden zwar ausgeführt führen aber nicht zum Ergebnis Spiele- und Multimedia-Programmierung 5
M [JOGL] eclipse export Runnable Jar - startet nicht Spiele- und Multimedia-Programmierung 3
B LWJGL / OPENGL Kriege Depth-Test nicht hin :( Spiele- und Multimedia-Programmierung 0
S Slick2D KeyInput reagiert nicht. Spiele- und Multimedia-Programmierung 3
S Quaxli's Heli Spiel läuft nicht nach Plan Spiele- und Multimedia-Programmierung 2
W [libGDX] findet SplashScreen.png nicht Spiele- und Multimedia-Programmierung 4
T LWJGL VBO's funktionieren nicht, geben aber auch keinen Fehler Spiele- und Multimedia-Programmierung 0
Androbin Kollision zwischen Raster und Nicht-Raster Spiele- und Multimedia-Programmierung 2
O Fehler bei Programmierung lässt Figur nicht bewegen Spiele- und Multimedia-Programmierung 5
Androbin Mein Spiel will sich nicht zeichnen lassen !!! Spiele- und Multimedia-Programmierung 7
B Mein Programm reagiert nicht auf den Tasstendruck Spiele- und Multimedia-Programmierung 1
F HashMap liefert nicht gewünschten Wert (gar nix) Spiele- und Multimedia-Programmierung 5
J mensch ärger dich nicht Spiele- und Multimedia-Programmierung 1
M Spiele Tutorial.. Findet Bilddateien nicht Spiele- und Multimedia-Programmierung 6
G Ausführbare Jar findet Bilddateien nicht... Spiele- und Multimedia-Programmierung 4
P Rotation von Sprite klappt nicht Spiele- und Multimedia-Programmierung 4
A Minecraft Java Ubuntu Minecraft Server startet nicht - ERROR (SIGSEGV) Spiele- und Multimedia-Programmierung 7
F LWJGL: Licht und GL_LINES funktioniert nicht Spiele- und Multimedia-Programmierung 6
A [LWJGL] BMP Textur wird nicht richtig dargestellt Spiele- und Multimedia-Programmierung 8
N JPanel Inhalt aktualisiert nach Thread.sleep nicht Spiele- und Multimedia-Programmierung 2
S LWJGL Rechteck wird nicht gezeichnet Spiele- und Multimedia-Programmierung 6
J KeyMapping funktioniert nicht Spiele- und Multimedia-Programmierung 5
R Minecraft Minecraft läuft nicht paralel mit minecraft server ? Spiele- und Multimedia-Programmierung 3
S eine nullpointerexception, wo sie nicht sein sollte Spiele- und Multimedia-Programmierung 12
J Java3D - Textur laden geht nicht Spiele- und Multimedia-Programmierung 9
S Mensch-Ärger-Dich-Nicht Methoden Spiele- und Multimedia-Programmierung 2
S VLCJ libjawt.so nicht gefunden Spiele- und Multimedia-Programmierung 3
J Sound einbinden funktioniert nicht Spiele- und Multimedia-Programmierung 13
A JME3 will Blender/j3o Objekte nicht einladen Spiele- und Multimedia-Programmierung 3
D Slick Lib - Bilder einlesen funktioniert nicht Spiele- und Multimedia-Programmierung 2
Q BufferedImage vs. Heap Space ‒ Warum wird der Speicher nicht freigegeben? Spiele- und Multimedia-Programmierung 6
T LWJGL Grafik meines Projektes läuft nicht korrekt auf meinem iMac Spiele- und Multimedia-Programmierung 19
B LWJGL/OpenGL rendert manche Objekte nicht Spiele- und Multimedia-Programmierung 6
D Key Listener reagiert nicht ! Spiele- und Multimedia-Programmierung 4
CookieSoft 3D Würfel will sich nicht drehen! [LWJGL] Spiele- und Multimedia-Programmierung 2
T lwjgl vertex buffer rendert nicht Spiele- und Multimedia-Programmierung 9
R Kollisionsabfrage haut nicht hin Spiele- und Multimedia-Programmierung 15
R Probleme mit JPanel!KeyListener geht nicht Spiele- und Multimedia-Programmierung 6
A Patter Array Eintrag vergleichen geht nicht!!! Spiele- und Multimedia-Programmierung 3
M Jmonkey läuft nicht Spiele- und Multimedia-Programmierung 7
0 Finde den Fehler nicht Spiele- und Multimedia-Programmierung 2
M Mathetrainer - Reset Button funktioniert nicht! Spiele- und Multimedia-Programmierung 8
A OpenGL Textur und nicht Textur Spiele- und Multimedia-Programmierung 2
D JAR file startet manchmal nicht Spiele- und Multimedia-Programmierung 3
S MouseEvent.getPint() ist nicht Courser Spitze Spiele- und Multimedia-Programmierung 4
M Minecraft Bukkit Server VM Kann nicht Vergrößert werden Spiele- und Multimedia-Programmierung 20
K Kugeln werden nicht unsichtbar Spiele- und Multimedia-Programmierung 23
K Transformation wird nicht angewendet Spiele- und Multimedia-Programmierung 3
E Spiel startet nach exportieren nicht Spiele- und Multimedia-Programmierung 7
T JMonkey Textur nicht ganz angezeigt Spiele- und Multimedia-Programmierung 3
W Java3D: Farbe von Objekten stimmt nicht mit übergebenem RGB-Wert überein Spiele- und Multimedia-Programmierung 9
M Mensche Ärgere Dich Nicht Spiele- und Multimedia-Programmierung 4

Ähnliche Java Themen

Neue Themen


Oben