Drag and Drop eines Graphikelements

mororu

Mitglied
Hallo zusammen

Ich habe in der Schule die Aufgabe erhalten ein Türme von Hanoi spiel zu programmieren. Leider habe ich nun noch überhaupt keine Ahnung von Drag and Drop von selbst erstellten Graphik-Objekten.

Mein Ziel wäre es schliesslich, ein erstelltes PNG oder JPG als Scheibe auf dem GUI anzuzeigen und diese dann zum spielen verwenden zu können.

Ich habe jetzt einfach das Problem an welchem Ende ich beginnen soll. Gibt es gute Tutorials zu Drag and Drop von graphischen Objekten? Leider habe ich nicht wirklich viel schlaues gefunden bis jetzt. Oder besser gesagt ich habe wahrscheinlich die funktionsweise noch nicht kapiert.

Also gesucht ist ein eifnaches Tutorial, Beispiel zu Drag and Drop mit graphischen Objekten.

Vielen Dank für eure Tipps
 

Michael...

Top Contributor
Sicher, dass Du sowas mit DnD umsetzen willst bzw. damit anfangen willst? DnD wird ja verwendet um Objekte aus einem Element in ein anderes zu verschieben.
Und das ist ja für so ein Spiel gar nicht notwendig.
Ich würde erst einmal mit der Spielogik anfangen und mich dann um die graphische Umsetzung kümmern. Es würde ja zu Beginn genügen, dass der Spieler die Scheibe "selektiert" und dann per Mouseclick die neue Position angibt.
 

mororu

Mitglied
Ja da gebe ich dir eigentlich recht. Aber unser Lehrer will uns vor eine Herausforderung stellen. Darum ist Drag and Drop fast schon eine Bedingung. Leider!
 

Mujahiddin

Top Contributor
Versuch doch erstmal, wie Michael erwähnte, die Grafik selber hinzubasteln...
Dann machst du zwei Methoden rein - die eine beim ersten mausklick, dass der Turm selektiert wird, die andere beim zweiten mausklick, wenn ein anderer turm angeklickt wird, und die angeklickte scheibe kleiner ist als die oberste scheibe beim zweiten-klick-turm.
So, wenn du die beiden methoden hast, versuchst du einfach das in drag and drop umzuwandeln, sprich: "mousePressed" aus dem MouseListener ist die erste Methode von oben, und "drop" von DropTargetListener ist die zweite Methode...
was zwischen 'press' und 'drop' passiert > also 'drag', kannst du im MouseMotionListener bei mouseDragged/mouseMoved bestimmen, du kannst z.b. machen, dass das bild dem mauszeiger folgt oder sonstiges... Du kannst auch einfach ein DropTarget erstellen...
Gibt verschiedene Möglichkeit, ich würde aber nicht gleich mit Kanonen auf Spatzen schießen sondern erst 'klein' anfangen.

MfG
 

mororu

Mitglied
Ich nehme schwer an, dass ihr recht habt :noe:.

Also dann werde ich mal probieren eine Graphik zu erzeugen und diese dann irgendwie zu bewegen.
Was würded ihr an meiner Stelle auch mit Graphics2D probieren?

Melde mich wieder wenn ich mal was geschafft habe.
 

mororu

Mitglied
Bin gerade vor das nächste Problem gestossen. Anhand eines Beispiels wollte ich nun meinem Rectangle2D-Objekt ein Transferhandler zuweisen. Aber da gibt es die Methode setTransferHandler gar nicht???

Was jetzt? Geht das nur mit Swingkomponenten?
 

Michael...

Top Contributor
Ich muss noch mal nachfragen: Geht's hier tatsächlich um echtes DnD oder soll einfach per Maus eine Turmscheibe von einen Stapel auf den anderen verschoben werden und die Scheibe dabei den Mauscursor "verfolgen"?

Der TransferHandler kommt nur beim Tranfer von Swing zu Swingkomponente zum Einsatz.
 

mororu

Mitglied
Nein also es würde schon reichen, wenn ich die Scheibe packen kann und auf den anderen Stapel legen. Ich denke nicht das man die Scheibe während dem Drag sehen muss.

Du siehst ich habe mit dem ganzen Thema noch ein relatives drucheinander.

Wenn der Transferhandler nur bei Swing-Komponenten zum Einsatz kommt, wie mach ich dann das ganze mit einem Graphics-Objekt?
 
G

Gast2

Gast
Nein also es würde schon reichen, wenn ich die Scheibe packen kann und auf den anderen Stapel legen. Ich denke nicht das man die Scheibe während dem Drag sehen muss.

Du siehst ich habe mit dem ganzen Thema noch ein relatives drucheinander.

Wenn der Transferhandler nur bei Swing-Komponenten zum Einsatz kommt, wie mach ich dann das ganze mit einem Graphics-Objekt?
Mach doch einfach den Link von oben druch da steht alles drin...
 

mororu

Mitglied
Ja das Tutorial ist ja gut und recht. Aber ich kann ja keine dieser Methoden auf ein Grafik-Objekt anwenden. Diese Methoden mit setDragEnabled usw. gehen ja nur für Swing-Komponenten!

Wie mach ich das mit einem Grafik-Objekt? Gibt es dazu wirklich niergends ein einfaches Tutorial? Das kann doch nicht sein.
 

Michael...

Top Contributor
Wie mach ich das mit einem Grafik-Objekt? Gibt es dazu wirklich niergends ein einfaches Tutorial? Das kann doch nicht sein.
Diese DnD Geschichte gibt es nur für Swingkomponenten - was für ein Objekt Du dann per Drag 'n Drop
verschiebst ist dann letztendlich Dir überlassen.
Wenn Du dieses DnD verwenden willst, kannst Du ja drei JPanels oder JComponents nebeneinander platzieren und dann das drumherum implementieren. Einfach ist das glaube ich nicht - hab mich zum Glück noch nie damit auseinander setzen müssen ;-)

Die Türme von Hanoi sind eigentlich (meine Meinung) nicht ein Fall für DnD. Ich würde eine Graphikkomponente verwenden auf der alles gezeichnet wird und mit einem MouseListener das verschieben bzw. versetzen realisieren.

und ich würde nochmal beim Lehrer nach Fragen, ob das tatsächlich mit dem Swing DnD umgesetzt werden soll, oder ob es nicht einfach darum geht die Scheiben mit der Maus zu versetzen
 

mororu

Mitglied
Du sprichst es an, man muss einfach eine Scheibe packen können und verschieben. Es muss nicht eine Swing-Komponente sein. Aber ich habe zu DnD nur immer Beispiele zu Swing gefunden. Dein Vorschlag mit dem MouseListener klingt vielversprechend. Aber eigentlich ist das ja auch eine Art DnD?

Dann such ich halt mal dazu noch Tutorials.
 

mororu

Mitglied
So hab nun endlich mal etwas brauchbares gefunden. Danke für den Tipp Michael

Wenns jemand interessiert hier mal der Link.

Danke euch für eure Hilfe. Komme drauf zurück wenn es ums Spiel geht. :oops:
 
G

Gast2

Gast
Du sprichst es an, man muss einfach eine Scheibe packen können und verschieben. Es muss nicht eine Swing-Komponente sein. Aber ich habe zu DnD nur immer Beispiele zu Swing gefunden. Dein Vorschlag mit dem MouseListener klingt vielversprechend. Aber eigentlich ist das ja auch eine Art DnD?

Dann such ich halt mal dazu noch Tutorials.

Wie gesagt das oben genannte Tutorial ist DAS Tutorial... Und natürlich willst du SWING komponenten (unter anderem auch Grpahik Objekte)verschieben, außer du machst es in SWT dann musst das SWT DnD anschauen. Du hast glaub selber kein Plan was du machst.
Wie stellst du den deine einfachen Graphik Objekte dar, wenn ohne Swing und SWT ;)?
Hast du überhaupt schon eine GUI? Wenn nicht mach erstmal deine GUI und dann mach dir über verschrieben Gedanken außerdem ist das oben genannte Tutorial gar nicht so schwer man muss sich nur damit auseinander setzen. Aber man sollte halt schon wissen was für Komponenten man darstellt :D... Ob Swing,SWT, JAVA FX wahtever... Aber einfach nur Graphik Objekte gibt es nicht, die nichts mit dem GUI Toolkit zu tun haben gibt es nicht.
 

mororu

Mitglied
Ja ich hab auch nie behauptet, dass ich weiss welche Komponenten zu welcher Komischen Klasse gehören. Also dann weiss ich es jetzt besser. Ich ging davon aus, dass einfach alle JBlablablas Swing Komponenten sind.

Jedenfalls kann ich nun ein Bild verschieben, ich habe zwar noch keinen Plan wie meine weiteren Schritte aussehen werden, aber irgendwie werde ich auch das noch hinkriegen.

Ach ja, falls ich dich mit meiner Unwissenheit langweile, dann lies doch einfach zukünftig meine Beiträge nicht mehr. Ich werde nämlich sicher noch viele Fragen stellen, bei welchen du dir wahrscheinlich ziemlich an die Stirn fassen wirst.
 
G

Gast2

Gast
Ja ich hab auch nie behauptet, dass ich weiss welche Komponenten zu welcher Komischen Klasse gehören. Also dann weiss ich es jetzt besser. Ich ging davon aus, dass einfach alle JBlablablas Swing Komponenten sind.

Jedenfalls kann ich nun ein Bild verschieben, ich habe zwar noch keinen Plan wie meine weiteren Schritte aussehen werden, aber irgendwie werde ich auch das noch hinkriegen.

Ach ja, falls ich dich mit meiner Unwissenheit langweile, dann lies doch einfach zukünftig meine Beiträge nicht mehr. Ich werde nämlich sicher noch viele Fragen stellen, bei welchen du dir wahrscheinlich ziemlich an die Stirn fassen wirst.

Nö warum langweilen, wollte dir nicht zu nahetreten ;)... aber wenn du ein Tutorial bekommst und zu faul bist es durchzulesen, kann ich ja nichts dafür. Bevor man mit DnD anfängt sollte man halt erstmal die Basic GUI Sachen lernen und nicht irgendwas gefundenes vom Internet rauskopieren, ich dachte halt du wolltest was lernen... Weil wenn du nicht mal weißt was für was die "komischen" Klassen benötigt werden, solltest du kleiner anfangen.
Übrigens siehst du am package name der Klassen wo sie dazugehören.

Naja gutes gelingen!!!
 

mororu

Mitglied
Sorry hab ich in den falschen Hals gekriegt. Das Tutorial mag sicher gut sein, ich hab es sogar durchgelesen. Aber ich fand es recht schwer verständlich und konnte die Parallelen auf mein Problem nicht ziehen. Natürlich möchte ich was lernen. Aber wenn man absolut null Quellen für ein unbekanntes Problem hat, dann sucht man zuerst halt mal ein Tutorial oder ähnliches.
 
G

Gast2

Gast
Sorry hab ich in den falschen Hals gekriegt. Das Tutorial mag sicher gut sein, ich hab es sogar durchgelesen. Aber ich fand es recht schwer verständlich und konnte die Parallelen auf mein Problem nicht ziehen. Natürlich möchte ich was lernen. Aber wenn man absolut null Quellen für ein unbekanntes Problem hat, dann sucht man zuerst halt mal ein Tutorial oder ähnliches.

Ich denke eher dass die allgemein noch die Basics von einer GUI fehlen, darum ist es auch so schwer für dich zuzuordnen. Darum solltest erst einmal einfachere Sachen anfangen. Listenerkonzept usw. Dann lernst auch langsam die Klassen kennen die du benötigst.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Drag & Drop Hilfe Java Basics - Anfänger-Themen 5
DStrohma Grundsätzliche Fragen zu Drag & Drop Java Basics - Anfänger-Themen 1
M Drag & Drop - Interaktion zwischen Java und dem OS Java Basics - Anfänger-Themen 1
B Drag & Drop für Panels Java Basics - Anfänger-Themen 6
B List - Drag&Drop Java Basics - Anfänger-Themen 8
P Input/Output String via Drag & Drop auf jar-Archiv Java Basics - Anfänger-Themen 2
K Eclipse wie Swing per Drag und Drop erstellen Java Basics - Anfänger-Themen 2
U Drag&Drop von Tabelle in Textfeld Java Basics - Anfänger-Themen 3
S Drag and Drop von .txt Dateien in eine Liste Java Basics - Anfänger-Themen 2
R Drag&Drop mit Parametern Java Basics - Anfänger-Themen 6
B Drag and Drop fähige Trackliste..nurnoch ein kleines Problem Java Basics - Anfänger-Themen 16
O Drag & Drop mit Image? Java Basics - Anfänger-Themen 2
G Drag n' Drop - Probleme mit Transferable Java Basics - Anfänger-Themen 10
T ganzes Object Drag und Drop Java Basics - Anfänger-Themen 19
G Drag and Drop Java Basics - Anfänger-Themen 6
G Drag and drop Verständnissproblem. Java Basics - Anfänger-Themen 8
N drag and drop mit JList Java Basics - Anfänger-Themen 5
B Drag&Drop mit Swing Java Basics - Anfänger-Themen 17
B Swing: Zeichnen mit Drag and Drop Java Basics - Anfänger-Themen 11
R Drag'n'Drop Box Java Basics - Anfänger-Themen 2
E Cursor Image bei Drag'n'Drop ändern Java Basics - Anfänger-Themen 6
X Gwt DnD, Drag auf Droparea in anderer Klasse? Java Basics - Anfänger-Themen 0
K Drop-down Menü (swing) Java Basics - Anfänger-Themen 4
S Java und HTML- Drop Down- Mehrfachauswahl Java Basics - Anfänger-Themen 3
D Zwei Drop downs für voneinander abhängige Bundesländer- und Städteauswahl Java Basics - Anfänger-Themen 9
K SWT Drop Box Java Basics - Anfänger-Themen 11
E Adobe Designer Drop Down Feld & If Abfrage Java Basics - Anfänger-Themen 4
M statt drop down menü - buttons Java Basics - Anfänger-Themen 5
M Länge eines Arrays als Variable speichern möglich? Java Basics - Anfänger-Themen 14
P Objekt einer Methode eines anderen Objektes übergeben Java Basics - Anfänger-Themen 5
P Wie kann ich beispielsweise Speicherstände eines Spiels DAUERHAFT in meinem Programm speichern? Java Basics - Anfänger-Themen 3
laxla123 Eigenschaften eines Algorithmus (determiniert vs.. deterministisch) Java Basics - Anfänger-Themen 2
monsterherz Ablauf der Erstellung eines Java Programmes Java Basics - Anfänger-Themen 17
monsterherz Fehler Semikolon fehlt - ich weiss aber nicht wo da noch eines hin sollte... Java Basics - Anfänger-Themen 21
J Farbe des Striches eines TitledBorders ändern Java Basics - Anfänger-Themen 2
pc pc pc pc pc letztes Element eines Arrays n Java Basics - Anfänger-Themen 3
walid Öffnungszeiten eines Geschäftes Java Basics - Anfänger-Themen 3
paulen1 Best Practice "Unchecked Assignment" Warnung beim erstellen eines 2D Arrays of Arraylists Java Basics - Anfänger-Themen 2
T Probleme beim Import eines Git-Repos Java Basics - Anfänger-Themen 2
U Eigenschaft eines JTextfiels per ActionListener ändern... Java Basics - Anfänger-Themen 2
B Synchronisation eines kleinen Museums Java Basics - Anfänger-Themen 47
krgewb Breite und Höhe eines Bildes in base64 auslesen Java Basics - Anfänger-Themen 3
Sachinbhatt Was ist die Notwendigkeit eines Sammlungsframeworks in Java? Java Basics - Anfänger-Themen 2
N Textdatei aus Resourcen-Ordner eines Projekts/ jar-file lesen Java Basics - Anfänger-Themen 4
B Produkt eines double - streams Java Basics - Anfänger-Themen 3
B Attribute eines Objekts einer Klasse durch statische Methode einer 2. Klasse ändern? Java Basics - Anfänger-Themen 32
S Variablen Letzte Zeile eines Strings entfernen Java Basics - Anfänger-Themen 1
D Inhalt eines Arrays ausgeben Java Basics - Anfänger-Themen 7
A Jedes zweite Element eines Arrays entfernen Java Basics - Anfänger-Themen 30
sserio Java Fx, wie erstellt man einen EventHandler, der durch das Drücken eines Button Texte in eine Table view einfügt Java Basics - Anfänger-Themen 17
J Größe eines Strings in Pixel Java Basics - Anfänger-Themen 18
M Parse-Tree eines statements darstellen Java Basics - Anfänger-Themen 0
H Java verkettete Liste, Wert eines Index zurückgeben Java Basics - Anfänger-Themen 1
bluetrix Programmieren eines Bots für Zahlen-Brettspiel Java Basics - Anfänger-Themen 9
J Hinzufügen eines Objektes in ein Objekt-Array Java Basics - Anfänger-Themen 62
M Wie kann die Implementation einer Methode den Wert eines Attributs vermindern? Java Basics - Anfänger-Themen 3
A Rekursive Implementation eines Codes Java Basics - Anfänger-Themen 4
H String Repräsentation eines Rechtecks mit Instanz-Methode Java Basics - Anfänger-Themen 8
M Konstruktor ohne Übergabe eines Wertes Java Basics - Anfänger-Themen 7
M Wie kann ich in einem Konstruktor die Methode eines anderen Interfaces mit den jeweiligen Parametern aufrufen? Java Basics - Anfänger-Themen 8
M Wie erreiche ich das Vorwärtsgehen eines Roboters? Java Basics - Anfänger-Themen 2
M Wie erreiche ich es das Vorwärtsgehen eines Roboters? Java Basics - Anfänger-Themen 0
R While-Loop der die Einträge eines Arrays in umgekehrter Reihenfolge anzeigt Java Basics - Anfänger-Themen 3
A Optimierung eines Programms: Mergen der Dateien Java Basics - Anfänger-Themen 23
melisax Alle Möglichkeiten eines Wortes angeben Java Basics - Anfänger-Themen 3
A Java, verarbeitung eines xml-files Java Basics - Anfänger-Themen 2
C Fehler beim erstellen eines Objektes Java Basics - Anfänger-Themen 3
B Konkatenieren eines Strings und inkremtierenden Zahl zu einer INT Variablen Java Basics - Anfänger-Themen 7
F Initialisieren eines Web-Mp3 Players in Tabs durch "booleans" erst wenn Tab geöffnet wird ...? Java Basics - Anfänger-Themen 1
P Drei Zahlen eines Würfelspiels auswerten Java Basics - Anfänger-Themen 7
C Brauche Hilfe beim Schreiben eines Programmes :/ Java Basics - Anfänger-Themen 1
C initialisieren eines arrays richtiger Größe und mit geeignetem Datentyp Java Basics - Anfänger-Themen 26
C Überprüfen eines Programms auf Syntaxfehler Java Basics - Anfänger-Themen 3
S Wie kann ich den Bereich eines Integers begrenzen? Java Basics - Anfänger-Themen 2
nonickatall Grundsätzliches Verständnisproblem des Aufbaus eines Programms Java Basics - Anfänger-Themen 19
B Downgrade eines bestehenden Projektes Java Basics - Anfänger-Themen 5
amelie123456 Geschwindigkeit der Methode bewegeDich eines Objekts ändern Java Basics - Anfänger-Themen 2
D Hilfe beim Erzeugen eines Arrays NullPointerException wird ausgelöst Java Basics - Anfänger-Themen 11
J maximaler Wert eines Integers Java Basics - Anfänger-Themen 14
TimoN11 IntelliJ , Ausgabe von einem Quellcode in Eingabe eines Quellcodes Java Basics - Anfänger-Themen 1
Z Rückgabe eines Values in umgekehrte richtung Java Basics - Anfänger-Themen 5
L Methode zum invertieren eines Arrays Java Basics - Anfänger-Themen 7
B fragen zu Aufbau eines UML-Klassendiagramm Java Basics - Anfänger-Themen 1
eleonori Durchschnitt aller Werte eines Baums berechnen Java Basics - Anfänger-Themen 5
M Benutzereingabe eines Codes verbessern Java Basics - Anfänger-Themen 3
B Modulo-Operator anhand eines Beispieles erklären Java Basics - Anfänger-Themen 7
J Verschieben von Buchstaben in einem String um vorgegebene Anzahl von Zeichen innerhalb eines weiteren String Java Basics - Anfänger-Themen 12
F Auf Variablen eines Konstruktors zugreifen Java Basics - Anfänger-Themen 4
Kawastori Größe eines Arrays bestimmen Java Basics - Anfänger-Themen 13
Lena_2611 Vergleich von Array1 Index mit Array2 Wert und erzeugen eines neues Arrays Java Basics - Anfänger-Themen 8
A Teilarrays eines 2D-Arrays sortieren Java Basics - Anfänger-Themen 4
marcooooo Separator zwischen allen Zeichen eines Strings einfügen Java Basics - Anfänger-Themen 29
C Wie kann ich Versionen eines Projektes in Eclipse erstellen? Java Basics - Anfänger-Themen 3
yoskaem Text Color durch Klicken eines Buttons in anderer Activity ändern Java Basics - Anfänger-Themen 2
A Teilen eines Arrays Java Basics - Anfänger-Themen 5
DorFey Sortieren eines mehrdimensionalen Arrays Java Basics - Anfänger-Themen 8
P Klasse hat keinen Zugriff auf getter/setter-Methoden eines Objektes Java Basics - Anfänger-Themen 9
R Löschen und ausgeben eines Teilbaums Java Basics - Anfänger-Themen 3
J Alle Werte eines Strings zusammen addieren Java Basics - Anfänger-Themen 15
M Hilfe bei Strukturierung eines Buchungssystems Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben