AWT Images aus Imagearray an die Maus pappen und bewegen

gulty

Mitglied
Hallo,
bei vielen Dingen bin ich bisher auf dieses Forum gestoßen und es hat mir sehr geholfen, hier etwas zu lesen. Jetzt hab ich mich mal dazu durchgerungen einen Account zu erstellen, um eine Frage bzgl. eines Spiels, welches ich programmiere, loszuwerden.

Es geht um eine Schachspiel Application mit einem Frame. Das Schachbrett wird über eine for Schleife gezeichnet, d.h. es werden Rechtecke aneinandergefügt und dabei immer überprüft, ob das vorherige Feld schwarz oder weiß ist und das Gegenteil wird gezeichnet. Soweit sogut, klappt. Dann habe ich ein zweidimensionales Image Array erstellt. Dieses enthält die Schachfiguren, welche gleichzeitig in startaufstellung angeordnet sind.

Aus diesem Feld lasse ich bisher auch gleichzeitig über die Schleife, welche das Brett zeichnet die Startposition zeichnen.

Nun ist meine Frage, wie ich am besten mit dem MouseListener ein Feld auswählen kann und das Image was auf diesem Feld liegt an die Maus pappen und auf ein neues Feld verschieben.

Die Idee ist, die Mauskoordinaten auszulesen und beim Click/Drag mit einer riesigen switch anweisung nochmal zu überprüfen, wo die koordinaten liegen. wenn sie zb zwischen 0 und 60 (für x und y) liegen, dann ist feld 1 gemeint. dafür wird auf das array figuren[0][0] (1. position) zugegriffen, der inhalt an die maus gepappt. beim loslassen werden wieder die koordinaten überprüft und der arrayinhalt in das neue feld geschrieben und aus dem alten gelöscht.

Meine Frage: Ist diese Denkweise denn sinnvoll? Geht es nicht auch viel einfacher, als für jedes Kästchen eine riesen Switch Abfrage zu machen? Kann ich den Mauslistener direkt an ein Bild aus einem Feld hängen oder ist es sinnvoller ein weiteres Array mit den Kästchenkoordinaten zu erstellen?

Wie pappe ich überhaupt ein Image aus einem Array an die Maus?

Ziel ist es in meine Malschleife neben den Kästchen auch immer das korrekte ArrayImage an die korrekte Stelle zu malen und durch Mausbewegung auch die Speicherung durchzuführen..

Ist jetzt etwas allgemein, wenn jemand am Quellcode interesse hat, bitte ich um eine PM.

Liebe Grüße,
gulty
 

Volvagia

Top Contributor
n / Breite der Schachfelder = Feld.
Damit kannst du es dir ausrechnen, vorrausgesetzt, das Panel hat genau die Größe Breite der Schachfelder * 8. Sonst musst du vorher von n natürlich den Rand als Differenz abziehen.
z. B. x = 213, Breite der Schachfelder = 60px,
213 / 60 = 3.55, Abgerundet = 3, also befindet sich die Maus auf dem 4. Feld horizontal.
So kannst du die momentane Figur beim Klicken im MouseListener (mousePressed) herausfinden, das Feld der Figur ausrechnen und die Mausposition cachen. In einen MouseMotionListener/mouseDragged kannst du die Figur dann um die Differenz verschieben, beim Loslassen (mouseReleased) wieder das richtige Feld ausrechnen und sie darauf ausrichten.
 

gulty

Mitglied
Vielen dank für die schnelle Antwort. Genau auf dem Wege habe ich mir das auch vorgestellt.. Aber ist etwas kürzer, als das, was ich bisher habe..

Mir geht es hauptsächlich um die Funktionen, d.h. wie kann ich das Image aus dem Array "Figur [4][4]" an die maus packen beim click?
 

Volvagia

Top Contributor
Du speicherst die Klickposition zwischen, errechnest dir bei der Mausbewegung die Differenz und zeichnest das Bild um die Differenz verschoben?
 

gulty

Mitglied
Es geht darum, dass ich gern das Bild an der Maus hängen haben will.. Das verschieben ist mir klar, aber das Drag and Drop. Die Figur soll bei gedrückter Maus am Zeiger hängen..
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Images laden nicht AWT, Swing, JavaFX & SWT 14
T JavaFX Label mit mehreren Images AWT, Swing, JavaFX & SWT 11
J Images drehen AWT, Swing, JavaFX & SWT 5
F Kollision zweier Images AWT, Swing, JavaFX & SWT 3
V JavaFX Teile eines Images Transparent machen AWT, Swing, JavaFX & SWT 4
B 2D-Grafik Shade eines Images AWT, Swing, JavaFX & SWT 1
D Applet Auslesen von Images aus Ressourcen AWT, Swing, JavaFX & SWT 29
B 2D-Grafik Dynamisches Erstellen von Images und deren Animation AWT, Swing, JavaFX & SWT 4
S Images färben und transparenz ändern AWT, Swing, JavaFX & SWT 4
I Größe eines rotierten Images AWT, Swing, JavaFX & SWT 3
C SWT probleme beim einbinden von Images AWT, Swing, JavaFX & SWT 2
M SWT Images bei Toggle Button wechseln AWT, Swing, JavaFX & SWT 3
reibi SWT Teilbereich eines Images markieren AWT, Swing, JavaFX & SWT 7
Developer_X Uneditable JTable mit Images AWT, Swing, JavaFX & SWT 2
N Java Choice Bilderausgabe - images - - image - AWT, Swing, JavaFX & SWT 2
Luk10 AWT Casten von images AWT, Swing, JavaFX & SWT 11
S SWT Images zu Byte Arrays AWT, Swing, JavaFX & SWT 5
G Images in GUI anzeigen lassen AWT, Swing, JavaFX & SWT 2
Fadi Images in JAR Datei laden? AWT, Swing, JavaFX & SWT 5
T 2 Images (jpg) zu einem zusammenfügen - nebeneinander AWT, Swing, JavaFX & SWT 3
S java.net.MalformedURLException: no protocol:/images/Home.jpg AWT, Swing, JavaFX & SWT 14
S [SWT] Toogle Button 2 verschiedenen images? AWT, Swing, JavaFX & SWT 6
S aktuelle möglichkeit images zu laden? AWT, Swing, JavaFX & SWT 2
T Aus farbigen images (JPG) graustufen images erstellen AWT, Swing, JavaFX & SWT 8
R Images anpassen AWT, Swing, JavaFX & SWT 4
H 2 Images positionieren AWT, Swing, JavaFX & SWT 9
orenishii mehrseitig Images anzeigen und drucken SimpleBook.java AWT, Swing, JavaFX & SWT 5
S Images in JAR AWT, Swing, JavaFX & SWT 6
I SWT - Images wiederbenutzen AWT, Swing, JavaFX & SWT 3
V Bilder -> SWT Images in einer Datei serialisieren und des AWT, Swing, JavaFX & SWT 9
G Warum gehen meine Icons/Images nicht weg? AWT, Swing, JavaFX & SWT 2
M Images werden nicht scharf AWT, Swing, JavaFX & SWT 3
A Wie kann ich Images schneller laden? AWT, Swing, JavaFX & SWT 18
G Linie mit der Maus auswählen AWT, Swing, JavaFX & SWT 5
B mit maus Objekt bewegen AWT, Swing, JavaFX & SWT 3
R Swing Panel nur bei Maus sichtbar AWT, Swing, JavaFX & SWT 2
B mit Maus verschiebbares Panel AWT, Swing, JavaFX & SWT 2
C JTextField Inhalt mit Maus selektieren wenn disabled AWT, Swing, JavaFX & SWT 2
S JavaFX Fenster aufkommen lassen, wenn mit der Maus über bestimmten Bereich fahren AWT, Swing, JavaFX & SWT 1
F Event wenn Maus eine JList verlässt AWT, Swing, JavaFX & SWT 13
T Timer und GIF Animationen pausieren während Maus sich bewegt AWT, Swing, JavaFX & SWT 4
M Bild in JPanel mit Maus einfügen AWT, Swing, JavaFX & SWT 0
B Swing Form undecorated: Beim Bewegen geht die Maus immer automatisch zur linken Seite. AWT, Swing, JavaFX & SWT 7
L 2D-Grafik Bild in Richtung Maus drehen AWT, Swing, JavaFX & SWT 18
K Swing Maus in Panel einsperren AWT, Swing, JavaFX & SWT 8
D Swing JList keine Selektionsänderung bei "dragged-Maus" AWT, Swing, JavaFX & SWT 4
A JFrame Größenänderung mit Maus und GridLayout AWT, Swing, JavaFX & SWT 10
J Maus "locken" für Menü AWT, Swing, JavaFX & SWT 8
D Grafiken an Maus anhängen AWT, Swing, JavaFX & SWT 2
P Pfeilpolygon per Maus rotierbar machen - Kleine Schwierigkeiten AWT, Swing, JavaFX & SWT 29
P Event Handling Gedrückte Maus Blockiert MausEvents AWT, Swing, JavaFX & SWT 2
R Swing Per Maus JLabel resizen AWT, Swing, JavaFX & SWT 6
F Maus von alleine bewegen! AWT, Swing, JavaFX & SWT 8
G Swing JPanel per Maus verschieben AWT, Swing, JavaFX & SWT 5
A SWT Tooltip soll nicht verschwinden, solange User mit Maus auf Control ist AWT, Swing, JavaFX & SWT 5
C AWT Mausbarriere Maus fangen AWT, Swing, JavaFX & SWT 10
J "Auswahlfenster" mit Maus auf JLabel zeichnen AWT, Swing, JavaFX & SWT 4
W Swing Bild zeichnen wenn Maus an bestimmter Position ist AWT, Swing, JavaFX & SWT 4
J Inaktivität von Maus und Tastatur AWT, Swing, JavaFX & SWT 4
F Element anzeigen / erstellen. Maus vs Controller AWT, Swing, JavaFX & SWT 7
M 3D-Grafik Bewegung mit der Maus ohne Klicken AWT, Swing, JavaFX & SWT 10
F Swing Objekte mit Maus verschieben AWT, Swing, JavaFX & SWT 8
O Swing JButton werden richtig gewechselt aber die Maus macht die alten wieder Sichtbar?? AWT, Swing, JavaFX & SWT 5
Y AWT Maus Koordinaten abspeichern in eine Textfile AWT, Swing, JavaFX & SWT 3
Weltall 7 AWT Maus-Events werden doppelt ausgeführt AWT, Swing, JavaFX & SWT 12
C permanente aktualisierung der Koordinaten der Maus auf einem Panel AWT, Swing, JavaFX & SWT 8
J maus festlegen AWT, Swing, JavaFX & SWT 6
C paintComponent mit Maus verschieben - wie? AWT, Swing, JavaFX & SWT 2
T Swing JComboBox: Listeneinträge mit der Maus verschieben AWT, Swing, JavaFX & SWT 5
O JSlider - wie unterscheide ich mit Maus verändert und durch setValue verändert. AWT, Swing, JavaFX & SWT 16
W Swing Maus Rastersprung AWT, Swing, JavaFX & SWT 3
S Swing JTable Auswahl mehrerer Zellen mit STRG+Maus AWT, Swing, JavaFX & SWT 3
E Hilfetext anzeigen beim Überfahren mit der Maus AWT, Swing, JavaFX & SWT 3
G Maus über Button AWT, Swing, JavaFX & SWT 3
S Funktion nur ausführen, wenn Maus über Componente ist AWT, Swing, JavaFX & SWT 2
G Listenelemente mit der Maus verschieben AWT, Swing, JavaFX & SWT 4
B kein MouseEvent bei zu schneller Bewegung der Maus AWT, Swing, JavaFX & SWT 7
B JTable - Wechsel der Spalte bei TAB, RETURN oder Maus AWT, Swing, JavaFX & SWT 5
D Mit der Maus in verschiedene Modi wechseln AWT, Swing, JavaFX & SWT 15
Z Buttons erscheinen erst wenn man mit der Maus drüber geht AWT, Swing, JavaFX & SWT 7
G Elemente erst da wenn mit Maus drüber gefahren bin AWT, Swing, JavaFX & SWT 2
M Kreis mit gedrückter Maus bewegen AWT, Swing, JavaFX & SWT 20
F Größenänderung mittels Maus - selbst implementieren? AWT, Swing, JavaFX & SWT 3
R Einstellen der Maus Rad Geschwindigkeit beim Scrollen AWT, Swing, JavaFX & SWT 3
G Kreis zeichnen und mit Maus ziehen AWT, Swing, JavaFX & SWT 3
W Maus Rahmen zeichnen AWT, Swing, JavaFX & SWT 10
A JFileChooser - Mehrere Dateien per Maus markieren (nokeys) AWT, Swing, JavaFX & SWT 7
V JTable Handling Fokus on Keystroke und Maus Doubleclick AWT, Swing, JavaFX & SWT 9
R JTable: Maus-Click ohne Datensätze AWT, Swing, JavaFX & SWT 9
L Größe von Komponenten im Nulllayout mit der Maus verändern. AWT, Swing, JavaFX & SWT 2
J Context Menü Maus AWT, Swing, JavaFX & SWT 3
G JTable selektion der Zeile bei Fokusieren mit der Maus AWT, Swing, JavaFX & SWT 5
T mousemoved abfrage - aber welches event wenn maus weg? AWT, Swing, JavaFX & SWT 2
lin Frame bei Drücken eines Buttons mit Maus verschieben AWT, Swing, JavaFX & SWT 7
G [AWT] Zeichnungen per Maus auswählen AWT, Swing, JavaFX & SWT 8
D Ne Maus Event Frage AWT, Swing, JavaFX & SWT 4
D Polygon mit der Maus zeichnen AWT, Swing, JavaFX & SWT 2
M Zusätzlichen Maus-Klick erzeugen AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben