MouseListener an Ecken von Polygonen hinzufügen

ttmgot

Mitglied
Hallo,

nachdem die Feiertage jetzt vorbei sind, und man daher wieder Programmieren muss, habe ich mal wieder ein Problem.

ich arbeite gerade mit ein paar Leuten daran, ein Siedler von Catan-Spiel zu programmieren, und dort hat man ein Spielfeld das aus vielen Sechsecken besteht. Wenn nun der Spieler auf eine Ecke oder eine Kante von einem Sechseck drückt, soll nun je nachdem etwas passieren.

Es ist in dem Fall echt schwer einen MouseListener auf das komplette Spielfeld zu legen, und jedes mal anhand der Koordinaten zu prüfen, was angeklickt wurde (Welche Kante mit welchen index oder welche Kreuzung mit welchen index). Jetzt hat ein Kumpel von mir gemeint, er hätte mal irgendwo gehört, dass man an die Ecken von Polygonen zumindest einen Listener anfügen kann. Deswegen habe ich zwar eine Klasse Sechseck programmiert, die von Polygon erbt, aber jetzt bei google dazu absolut nichts gefunden.

Daher wollte ich mal Fragen, ob das jetzt wirklich möglich ist, an die Ecken und Kanten MouseListener hinzuzufügen, oder ob das nur Schwachsinn ist. Und wenn das möglich ist, wie???:L

Hoffe, jemand der sich da besser auskennt weiß ne Lösung. Die Sechseck-Klasse sieht übrigens so aus,
Java:
public class Sechseck extends Polygon{
	
	int[] xpoints, ypoints; 
	int[] kreuzungen;
	
	Spielstand spielstand;

	public Sechseck(int[] xpoints, int[] ypoints, int[] kreuzungen,
			Spielstand spielstand) {
		super(xpoints, ypoints, 6);
		this.xpoints=xpoints;
		this.ypoints=ypoints;
		this.kreuzungen = kreuzungen;
		this.spielstand = spielstand;
		
	}
	

}
 

Marco13

Top Contributor
Man kann da keinen MouseListener einfach so anfügen. Man braucht einen für das gesamte Panel, und muss dann "schauen", welche Ecke angeklickt wurde. "Schauen" heißt in diesem Fall: Evtl. direkt über die Koordinaten ausrechnen (was bei Sechsecken ein bißchen frickelig sein könnte) oder brute force (aber langsam) jede vorhandene Ecke mit mousePosition.distanceTo(corner) prüfen.
 

Dragonfire

Bekanntes Mitglied
Man kann nicht einfach so überall einen Listener dranhängen ...

Polygon erbt von Object

Polygon (Java 2 Platform SE 5.0)

Dort gibt es keine addMouseListener Methode ...

Deine Polygon Klasse hat zurzeit ja auch noch wenig mit der Anzeige zu tun ...
Es sagt ja nur wo etwas gezeichnet werden soll, oder habe ich etwas falsch verstanden ...

Wie willst du den die grafische Anzeige realisieren?
Wenn deine Polygon-Klasse ein Sechseck "zeichen" soll, könnte
man z.B. vom JComponent erben und die paintComponent Methode überschreiben.
Dann hättest du auch die Methode addMouseListener ;)

Dies ist nur eine Möglichkeit ...

JComponent (Java 2 Platform SE 5.0)

Ps.: Kann das hier empfehlen:

http://www.java-forum.org/awt-swing-swt/43939-zeichnen-swing-tutorial.html
 
Zuletzt bearbeitet:

Marco13

Top Contributor
Für Sprites (und seien es auch Sechsecke) von JComponent zu erben ist IMHO ziemlich :autsch: - jede Component hat eine getBounds()-Methode, und die macht bei Sechsecken in dieser Form nicht viel Sinn. Der MouseListener müßte also trotzdem noch prüfen, ob er IN dem Sechseck ist oder nicht...
 

bERt0r

Top Contributor
Wieso Sprites? Bei Siedler von Katan sind die Sechsecke das Spielbrett. Die Ändern sich nie, werden höchstens aufgedeckt. Wenn man das mit einem Layoutmanager richtig hinbekommt ist das denke ich eleganter als das ganze in einem Panel zu zeichnen und jeden Klick auszurechnen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Viele ActionListener (MouseListener) - Performance AWT, Swing, JavaFX & SWT 24
ExceptionOfExpectation MouseListener-Objekte zu den Graphics-Objekten einfügen AWT, Swing, JavaFX & SWT 3
R Punkt von MouseListener hat falsche Koordinate AWT, Swing, JavaFX & SWT 2
J MouseListener wird nicht ausgeführt. AWT, Swing, JavaFX & SWT 4
S Swing Rechteck über JTable zeichnen (per MouseListener) AWT, Swing, JavaFX & SWT 1
G vorgefertigte Buttons oder neue Komponente mit MouseListener? AWT, Swing, JavaFX & SWT 0
F ListCellRenderer mit JLabel und MouseListener AWT, Swing, JavaFX & SWT 4
D Event Handling MouseListener funktioniert seit Java 8 nicht mehr AWT, Swing, JavaFX & SWT 13
M MouseListener auf table oder scrollPane AWT, Swing, JavaFX & SWT 11
B Event Handling MouseListener Behält seine Variablen, auch wenn ich ein neus Objekt erstelle AWT, Swing, JavaFX & SWT 2
D Swing &MouseListener in einem JFrame, sinnig? AWT, Swing, JavaFX & SWT 11
U MouselIstener zu JFrame AWT, Swing, JavaFX & SWT 6
F Swing MouseListener im JPanel AWT, Swing, JavaFX & SWT 3
J Swing Button mit JTable und MouseListener AWT, Swing, JavaFX & SWT 8
F JPanel + MouseListener AWT, Swing, JavaFX & SWT 5
JavaInBrain Swing Rückgabe aus MouseListener-Klasse AWT, Swing, JavaFX & SWT 3
A SWT SWT Scale und MouseListener AWT, Swing, JavaFX & SWT 7
J MouseListener und rechte Maustaste AWT, Swing, JavaFX & SWT 3
R MouseListener auf JPanel AWT, Swing, JavaFX & SWT 3
Q Swing MouseListener auf JTable geht nicht AWT, Swing, JavaFX & SWT 2
J Swing Einbau MouseListener in JPanel AWT, Swing, JavaFX & SWT 3
N Mit MouseListener X-Y Angaben vom Bild erfahren AWT, Swing, JavaFX & SWT 3
H Swing JPanel in JTable mit MouseListener AWT, Swing, JavaFX & SWT 3
A Individueller MouseListener ? AWT, Swing, JavaFX & SWT 7
B MouseListener im Renderer einer JComboBox AWT, Swing, JavaFX & SWT 3
P AWT MouseListener unklare abhandlung von Events AWT, Swing, JavaFX & SWT 3
M MouseListener/MouseMotionListener AWT, Swing, JavaFX & SWT 2
njans SWT MouseListener exited AWT, Swing, JavaFX & SWT 4
danx066 MouseListener macht was er will AWT, Swing, JavaFX & SWT 14
K MouseListener für Objekte auf einem Frame AWT, Swing, JavaFX & SWT 4
P JLabel Farbe/Bild ändern aus MouseListener heraus AWT, Swing, JavaFX & SWT 3
U Swing Generierung mehrerer Kreise per MouseListener AWT, Swing, JavaFX & SWT 16
Semox Swing JApplet: Problem MouseListener Anmeldung AWT, Swing, JavaFX & SWT 3
C JTappedPane Mouselistener auf Überschrift Registerkarte AWT, Swing, JavaFX & SWT 2
M MouseListener AWT, Swing, JavaFX & SWT 3
K AWT MouseListener linke und rechte Maustaste AWT, Swing, JavaFX & SWT 5
C Swing MouseListener Doppelklick-Geschwindigkeit AWT, Swing, JavaFX & SWT 4
N Swing MouseListener in JTable AWT, Swing, JavaFX & SWT 4
1 Eigene JComponent mit MouseListener versehen AWT, Swing, JavaFX & SWT 10
Developer_X AWT Component added keinen MouseListener AWT, Swing, JavaFX & SWT 7
R MouseListener wird nicht aufgerufen AWT, Swing, JavaFX & SWT 3
P JComboBox und MouseListener AWT, Swing, JavaFX & SWT 2
W MouseListener im editable ComboBox AWT, Swing, JavaFX & SWT 14
raptorrs Swing MouseListener reagiert nicht auf Instanz einer JTable AWT, Swing, JavaFX & SWT 6
multiholle Swing Mouselistener auf Parentpanel immer aktiv AWT, Swing, JavaFX & SWT 7
C MouseListener und ActionListener kombinieren AWT, Swing, JavaFX & SWT 17
M Komponenten einer unbestimmten Anzahl und MouseListener AWT, Swing, JavaFX & SWT 4
A MouseListener funktionert nie AWT, Swing, JavaFX & SWT 12
C Probleme mit Größe und mit MouseListener AWT, Swing, JavaFX & SWT 2
W MouseListener für jede Zelle einer JTable AWT, Swing, JavaFX & SWT 4
E MouseListener Problem AWT, Swing, JavaFX & SWT 4
D jButton mit ImageIcon & MouseListener AWT, Swing, JavaFX & SWT 5
S MouseListener zurückverfolgung auf element. AWT, Swing, JavaFX & SWT 7
B MouseListener / doppelklick geht net AWT, Swing, JavaFX & SWT 16
M JCheckBox Standard MouseListener entfernen AWT, Swing, JavaFX & SWT 13
hdi Wie mach ich diesen MouseListener AWT, Swing, JavaFX & SWT 4
G MouseListener & KeyListener AWT, Swing, JavaFX & SWT 4
H JComboBox reagiert nicht auf MouseListener AWT, Swing, JavaFX & SWT 5
2 Mouselistener AWT, Swing, JavaFX & SWT 2
W MouseListener, getClickCount und Doppelklick AWT, Swing, JavaFX & SWT 6
S swing komponenten mit mouselistener rotieren AWT, Swing, JavaFX & SWT 15
G JFrame,JLabel,MouseListener AWT, Swing, JavaFX & SWT 6
F Wie MouseListener bei TableModel anmelden? AWT, Swing, JavaFX & SWT 3
V Frage zu MouseListener --> mousePressed() AWT, Swing, JavaFX & SWT 5
C MouseListener für Spalte eines JTables AWT, Swing, JavaFX & SWT 4
K Problem mit 2 MouseListener. AWT, Swing, JavaFX & SWT 3
M MouseMotionListener oder mouseListener AWT, Swing, JavaFX & SWT 6
T JComboBox und MouseListener AWT, Swing, JavaFX & SWT 11
F MouseListener - Unhandled IOException AWT, Swing, JavaFX & SWT 5
padde479 Statusleiste mit MouseListener aktualisieren AWT, Swing, JavaFX & SWT 3
L Problem mit MouseListener, AdjustmentListener AWT, Swing, JavaFX & SWT 6
T MouseListener Problem AWT, Swing, JavaFX & SWT 3
F Mouselistener wird wiederholt aufgerufen AWT, Swing, JavaFX & SWT 3
G Frage zu MouseListener und speichern des Wertes (reflektion? AWT, Swing, JavaFX & SWT 6
B frage zu MouseListener AWT, Swing, JavaFX & SWT 5
O MouseListener - Wert-Übergabe AWT, Swing, JavaFX & SWT 3
W JPanel, JLabel und MouseListener -> auf clicks reagieren AWT, Swing, JavaFX & SWT 5
S MouseListener auf einem einzelnen Tab setzen AWT, Swing, JavaFX & SWT 3
B MouseListener & Fenster schliessen AWT, Swing, JavaFX & SWT 3
G MouseListener AWT, Swing, JavaFX & SWT 4
G Tooltip sperrt MouseListener? AWT, Swing, JavaFX & SWT 6
S JComboBox und MouseListener AWT, Swing, JavaFX & SWT 5
D Koordinaten der Bildschirmposition auslesen (MouseListener?) AWT, Swing, JavaFX & SWT 7
A Klassenübergreifend MouseListener verwenden AWT, Swing, JavaFX & SWT 14
N "globaler" MouseListener (+MouseMotionListener) AWT, Swing, JavaFX & SWT 4
M ToolTipText für JTable mit MouseListener ohne anklicken? AWT, Swing, JavaFX & SWT 7
A MouseListener auf Bild legen ? AWT, Swing, JavaFX & SWT 16
S Mouselistener erzeugt kein Event in einem Menuitem AWT, Swing, JavaFX & SWT 2
J MouseListener AWT, Swing, JavaFX & SWT 3
A JPanels in JPanel und MouseListener AWT, Swing, JavaFX & SWT 3
C Mehrere MouseListener? AWT, Swing, JavaFX & SWT 7
U Keylistener und Mouselistener AWT, Swing, JavaFX & SWT 2
L Event-handling, MouseListener AWT, Swing, JavaFX & SWT 5
T Problem mit MouseListener bei JButton AWT, Swing, JavaFX & SWT 5
K mein keyListener scheint Konflict haben mit mouseListener AWT, Swing, JavaFX & SWT 6
G Problem mit MouseListener AWT, Swing, JavaFX & SWT 9
thobren JavaFX Ecken bei radius löschen AWT, Swing, JavaFX & SWT 2
P transparenter JFrame mit runden Ecken AWT, Swing, JavaFX & SWT 1
R JTextField mit abgerundeten Ecken - Geht über Grenze hinaus AWT, Swing, JavaFX & SWT 4
T Borderlayout Ecken AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben