MouseListener & Graphics

bes

Mitglied
Moinsen,

mich plagt ein kleines Problem und ich hoffe, ihr könnt mir weiterhelfen.

Momentan schreibe ich nen kleines Kartenspiel. Nichts aufregendes 6x4 Karten werden angezeigt und auf Mausklick mit ner Animation gedreht. Die Karten zeichne ich mit einer Unterklasse von Canvas direkt in den Frame.
Bei einem Klick soll die Karte nun drehen. Etwa über eine Methode "turnCard(int xPos, int yPos, Graphics g)".

Wenn ich obige Methode über den MouseListener aufrufen will, scheitere ich daran, dass die Memberklasse ( MouseListener) nicht auf Graphics g zugreifen kann. Als "final Grahics g" geht es, doch es passiert nichts...

Wie kann ich also mit Übergeben von X- und Y-Koordinaten des MouseListeners an besagter Stelle zeichnen lassen?
 

Java-Freak

Bekanntes Mitglied
du braucht überhaupt kein Graphics objekt erzeugen. Ich hab mach zurzeit auch was ähnliches du schreibst in klasse 1, von wo du dein Fenster beispielsweise aufrufst:
Java:
...
@SuppressWarnings("unchecked")
JFrame frame = new JFrame("bla");
frame.setVisible(true);
frame.setSize(500, 500);
frame.getContentPane().add(new Klasse2());
...
Klasse2:
Java:
class Klasse2 extends JPanel
...
public void paint(Graphics g)(
g.drawLine(0,100,0,200);
)
...
 

bes

Mitglied
So ähnlich schaut auch mein Code aus. Das Zeichnen klappt ja auch. ;)
Das Problem liegt darin, dass mir der MouseListener vorgibt, wo ich als nächstes zu zeichnen habe und ich aus dem MouseListener heraus irgendwie ne paint-Methode mit diesen Koordinaten-Parametern aufrufen muss.

Java:
class GameFrame extends JFrame
{
	public GameFrame()
	{
		setSize(775,500);
		Engine engine = new Engine();
		add(engine);
	}
}

class Engine extends Canvas
{
	public void paint(Graphics g)
	{
		paintBackground(g);		
		
		this.addMouseListener(new MouseListener()
		{

			@Override
			public void mouseClicked(MouseEvent e) {
				// TODO Auto-generated method stub
				int x = e.getX();
				int y = e.getY();
				
				//Hier Aufruf einer paint-Methode zum Zeichnen an (x,y) - wie?
			}

Zeile 26: Wie kann ich von dort aus also zeichnen? :)
 

mabuhay

Bekanntes Mitglied
Hallo

Im MouseListener Speicherst du deine Koordinaten in ein Array oder so welches dann immer neu gezeichnet wird, wenn die Paint-Methode aufgerufen wird. Die Paint-Methode wird automatisch aufgerufen wenn das Bild neu gezeichnet werden muss (Fenster vergrössert, verschoben etc.). Du kannst auch Canvas.repaint() oder so ähnlich ausführen damit die paint-Methode neu aufgerufen wird.

mfg
 

bes

Mitglied
Ok, habe es nun so gemacht - gibt es dazu denn noch ne Alternative? Sonderlich elegant finde ich es nicht.???:L

Der Vollständigkeit halber mal das, was mir das Problem behoben bzw. umgangen hat:

Java:
public void paint(Graphics g)
{
		if (bg)
		{
			turn(g);
			bg = false;
		}
		else
		{
			paintBackground(g);
		}
}

Java:
public void mouseClicked(MouseEvent e) 
{
				posX = e.getX();
				posY = e.getY();
				bg=true;
				repaint();
}

Java:
public void update(Graphics g)
{
		paint(g);
}
 

mabuhay

Bekanntes Mitglied
Nein ich denke nicht. Bei jedem Fenster-vergrössern oder verschieben muss ja alles neu gezeichnet werden, und da musst du deine Zeichnung irgendwo gespeichert haben um die neu zu zeichnen.

Du kannst evtl schon das Grafikobjekt des Canvas holen mit getGraphics() (oder so ähnlich) und irgendwo sonst ausserhalb der paint-Methode was reinzeichnen. Dann wirst du aber Probleme haben dass die Zeichnung nicht korrekt aktualisiert wird, oder beim nächsten paint-aufruf wieder weg ist.

Oder hat hier jemand noch weiter Informationen? Sehr viel hab ich mich damit noch nicht beschäftigt.

mfg
 

Schandro

Top Contributor
u kannst evtl schon das Grafikobjekt des Canvas holen mit getGraphics() (oder so ähnlich) und irgendwo sonst ausserhalb der paint-Methode was reinzeichnen. Dann wirst du aber Probleme haben dass die Zeichnung nicht korrekt aktualisiert wird, oder beim nächsten paint-aufruf wieder weg ist.

Oder hat hier jemand noch weiter Informationen?
niemals getGraphics() benutzen
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Schiebepuzzle: MouseListener und Graphics? Java Basics - Anfänger-Themen 6
P JFrame, Linien zeichnen, MouseListener Java Basics - Anfänger-Themen 2
H MouseListener klicks begrenzen Java Basics - Anfänger-Themen 4
H MouseListener begrenzen und Speichern Java Basics - Anfänger-Themen 1
V Problem - MouseListener/2DGraphics Java Basics - Anfänger-Themen 2
R Variablen MouseListener funktioniert auf anderen Pcs nur bedingt Java Basics - Anfänger-Themen 6
G MouseListener funktioniert nicht wie geplant Java Basics - Anfänger-Themen 4
GRAZZ0R MouseListener - Rechteck Bewegen Java Basics - Anfänger-Themen 1
R Variable Klassenübegreifend MouseListener Java Basics - Anfänger-Themen 0
D MouseListener funktioniert nach Timerstart nicht mehr Java Basics - Anfänger-Themen 9
J MouseListener für Schleifen-Objekte Java Basics - Anfänger-Themen 13
S vom JPanel aus durch Mouselistener Internet aufrufen Java Basics - Anfänger-Themen 6
S GUI ImageIcon Mouselistener Link Java Basics - Anfänger-Themen 0
P MouseListener funktioniert nicht Java Basics - Anfänger-Themen 6
J KeyListener,MouseListener,MouseMotionListener und static Java Basics - Anfänger-Themen 7
P Problem mit MouseListener Java Basics - Anfänger-Themen 4
T MouseListener, recht Taste Java Basics - Anfänger-Themen 2
M MouseListener funktioniert nicht Java Basics - Anfänger-Themen 9
E Mouselistener auf jTable Java Basics - Anfänger-Themen 18
B Variablen an MouseListener übergeben Java Basics - Anfänger-Themen 5
H MouseListener für ein eingefügtes Bild in einem JFrame Java Basics - Anfänger-Themen 7
H Mouselistener bei JTable Java Basics - Anfänger-Themen 4
G MouseListener für mehrere Buttons Java Basics - Anfänger-Themen 11
J MouseListener fuer gezeichnete Polyline Java Basics - Anfänger-Themen 3
L Label + MouseListener Java Basics - Anfänger-Themen 12
M MouseListener funkioniert auf JPanel nicht Java Basics - Anfänger-Themen 8
P Jtree MouseListener und NoCollapse Java Basics - Anfänger-Themen 2
M MouseListener Java Basics - Anfänger-Themen 2
kitz MouseListener Java Basics - Anfänger-Themen 8
D Problem mit Mouselistener und jtable Java Basics - Anfänger-Themen 7
C fragen zu MouseListener Java Basics - Anfänger-Themen 3
M MouseListener funktioniert in jar-file nicht mehr Java Basics - Anfänger-Themen 13
F Logikproblem: Auf Mouselistener warten Java Basics - Anfänger-Themen 6
E Auf Mouselistener warten?! Java Basics - Anfänger-Themen 20
S Probleme mit 2 mouselistener Java Basics - Anfänger-Themen 6
A Frage zu MouseListener Java Basics - Anfänger-Themen 2
D Mouselistener Java Basics - Anfänger-Themen 2
A jPanel an MouseListener übergeben? Java Basics - Anfänger-Themen 2
S Swing JEditoPane MouseListener Java Basics - Anfänger-Themen 5
M Mouselistener Java Basics - Anfänger-Themen 4
S MouseListener funzt net. Java Basics - Anfänger-Themen 5
G MouseListener double click? Java Basics - Anfänger-Themen 1
V MouseListener Java Basics - Anfänger-Themen 5
M MouseListener Java Basics - Anfänger-Themen 3
N Mouselistener? Java Basics - Anfänger-Themen 5
T ein MouseListener pro Objekt sinnvoll? Java Basics - Anfänger-Themen 4
F MouseListener - Unhandled IOException Java Basics - Anfänger-Themen 2
U MouseListener Java Basics - Anfänger-Themen 2
L Array von Buttons, jeder soll MouseListener haben Java Basics - Anfänger-Themen 5
S MouseListener - Events auf Mouseklick Java Basics - Anfänger-Themen 14
L MouseListener Problem. Java Basics - Anfänger-Themen 2
S mouselistener Java Basics - Anfänger-Themen 3
N MouseListener Java Basics - Anfänger-Themen 2
J MouseListener implementieren Java Basics - Anfänger-Themen 12
P MouseListener wird anscheinend nicht benutzt Java Basics - Anfänger-Themen 12
N MouseListener - reagiert zu spät Java Basics - Anfänger-Themen 3
D JList - Textzeilen MouseListener zuweisen Java Basics - Anfänger-Themen 4
M prüfen ob mouselistener gesetzt ist. Java Basics - Anfänger-Themen 10
O image und mouseListener Java Basics - Anfänger-Themen 15
W MouseListener Probleme beim Abfangen Java Basics - Anfänger-Themen 8
P Kann keinen MouseListener hinzufügen Java Basics - Anfänger-Themen 3
G MouseListener einbauen - wie? Java Basics - Anfänger-Themen 4
W Umgang mit Graphics unklar : Erstellung u Uebergabe an Funktion Java Basics - Anfänger-Themen 18
M HILFE JPanel - Graphics Java Basics - Anfänger-Themen 1
H Eingabe tätigen bevor Graphics g Fenster öffnet Java Basics - Anfänger-Themen 5
I Java Klassen "Graphics" und "MouseEvent" kombinieren Java Basics - Anfänger-Themen 7
CptK Interface Bilder mit Graphics g zeichnen Java Basics - Anfänger-Themen 7
J Erste Schritte drawLine Methode der Graphics Klasse Java Basics - Anfänger-Themen 2
J GUI / Graphics Java Basics - Anfänger-Themen 2
H Graphics / repaint Java Basics - Anfänger-Themen 8
K Zwei Fragen zu Graphics/Graphics2D Java Basics - Anfänger-Themen 5
R Cast java.awt.Graphics Java Basics - Anfänger-Themen 7
Azazel (Anfängerhilfe) awt.Graphics Schwierigkeiten Java Basics - Anfänger-Themen 6
I Methoden public void paintComponent (Graphics g) Java Basics - Anfänger-Themen 4
B Erste Schritte Anzeige von Graphics Objekten einzeln aktualisieren Java Basics - Anfänger-Themen 1
S Farbige Lebensleiste mit Graphics? Java Basics - Anfänger-Themen 10
S Ein Graphics Obejct mehrmals mit denselben Eigenschaften zeichnen lassen?!?!? Java Basics - Anfänger-Themen 4
S G Graphics Java Basics - Anfänger-Themen 1
thet1983 g.Graphics löschen? Java Basics - Anfänger-Themen 1
M Probleme mit paint() aus java.awt.Graphics Java Basics - Anfänger-Themen 2
A EAN13 Font auf graphics g erzeugt Monospaces Java Basics - Anfänger-Themen 14
N Graphics to png Java Basics - Anfänger-Themen 10
N Methode draw(Graphics g) aufrufen Java Basics - Anfänger-Themen 6
Dogge Problem mit paint(Graphics g) im Applet Java Basics - Anfänger-Themen 13
J Problem mit paint(Graphics g) Java Basics - Anfänger-Themen 4
J Jtable änderung soll graphics aktualisieren Java Basics - Anfänger-Themen 4
J JAVA Graphics Java Basics - Anfänger-Themen 5
A Graphics Objekt verhält sich merkwürdig Java Basics - Anfänger-Themen 2
G DRUCKEN von z.B. eines JFrame über print(Graphics g) Java Basics - Anfänger-Themen 9
Maxim6394 Probleme mit Graphics Java Basics - Anfänger-Themen 7
W von Graphics in BufferedImage Java Basics - Anfänger-Themen 10
M OOP Graphics immer selbstbezihend Java Basics - Anfänger-Themen 12
K Problem mit Parameter von paint(Graphics g) Java Basics - Anfänger-Themen 3
T Transparente Bilder mit Graphics zeichnen Java Basics - Anfänger-Themen 17
H Probleme mit Graphics G Java Basics - Anfänger-Themen 2
J Graphics g Java Basics - Anfänger-Themen 4
H Probleme mit Graphics Java Basics - Anfänger-Themen 5
M Graphics zeichnen Java Basics - Anfänger-Themen 2
F Graphics PDFBox Java Basics - Anfänger-Themen 9
M kurze Frage zu Graphics Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben