Swing Wie ändere ich die default action für Drag&Drop

Status
Nicht offen für weitere Antworten.
Hallo,

ich habe eine funktionierende Implementation für Copy- und Move-Actions.
Die Sache ist aber die, dass Copy in meinem Programm die bei weitem häufigere Action ist, die Benutzer müssen also nahezu immer Control halten wenn sie Drag&Drop machen wollen. Deshalb suche ich nach einer Möglichkeit, die Defaultaction von Move nach Copy zu ändern. Wenn der User doch mal ein Verschieben auslösen will, kann er das ja immer noch indem er Shift gedrückt hält.

Hat das von euch schon mal jemand hinbekommen oder sonst eine Idee?

Danke, Robert
 
Beim ersten Beispiel auf Shannon Hickey's Blog: Choosing the Drop Action, and Further Changes to Swing Drag and Drop wird automatisch kopiert - vielleicht kannst du dich daran orientieren...
Nein, leider nicht. Er setzt dort die DropAction manuell auf COPY, nur kann der User dann manchen was er will und bekommt sie nicht mehr auf MOVE.

Im API scheint es keine Möglichkeit zu geben, zu unterscheiden ob getUserDropAction MOVE liefert weil er nichts oder weil er SHIFT gedrückt hat. Sonst könnte ich selektiv nur in ersterem Fall setDropAction(COPY) aufrufen.

Ich habe schon weiter unten im AWT-Kram gesucht, aber dann ist es für mich immer unübersichtlicher und verworrener geworden. Ich hatte halt gehofft, dass das schonmal jemand auf welcher Ebena auch immer gelöst hatte.

Robert
 

Marco13

Top Contributor
Hab's jetzt nicht näher ausprobiert, aber ... :D Kann man nicht einfach irgendwo die Action "umbiegen"?

if (action==MOVE) action = COPY;
else if (action==COPY) action = MOVE;
machWeiterWieVorher(action);

Ja, wäre ein Hack, aber ist nur so ein spontaner Gedanke.

Insgesamt kann das halt Frickelig sein - Drag&Drop greift halt zwangsläufig ziemlich tief in Systeminterna ein. Was soll passieren, wenn man von deinem Programm aus etwas auf den Windows-Desktop ziehst - oder umgekehrt?...
 
Hab's jetzt nicht näher ausprobiert, aber ... :D Kann man nicht einfach irgendwo die Action "umbiegen"?
Dies "umbiegen" würde in einem vertauschen der D&D-Bedienung rauslaufen. D.h. normal ist keine Taste oder SHIFT=MOVE, CTRL=COPY, das wäre dann umgekehrt. Das würde auch den Default tauschen, aber halt auch ansonsten zu Verwirrung führen.

Insgesamt kann das halt Frickelig sein - Drag&Drop greift halt zwangsläufig ziemlich tief in Systeminterna ein. Was soll passieren, wenn man von deinem Programm aus etwas auf den Windows-Desktop ziehst - oder umgekehrt?...
Das funktioniert beides sowohl mit COPY als auch MOVE. Nur eben dass der User eigentlich immer COPY will, Java aber MOVE voreinstellt.
 

Marco13

Top Contributor
Das funktioniert beides sowohl mit COPY als auch MOVE. Nur eben dass der User eigentlich immer COPY will, Java aber MOVE voreinstellt.

Ja, aber (ich bin kein DnD-Experte, nur) wer soll die Entscheidung treffen? Man kann die durchzuführende Aktion ja sogar noch während des Drags umschalten... ich glaube einfach, dass das Betriebssystem da noch ein Wörtchen mitzureden hat, aber ob und wie man das umgehen könnte, müßte man sich näher ansehen...
 
Ja, aber (ich bin kein DnD-Experte, nur) wer soll die Entscheidung treffen? Man kann die durchzuführende Aktion ja sogar noch während des Drags umschalten... ich glaube einfach, dass das Betriebssystem da noch ein Wörtchen mitzureden hat, aber ob und wie man das umgehen könnte, müßte man sich näher ansehen...
Nach meinem Verständnis (und so wie es den API nach läuft) trifft der Empfänger bzw. der User die Entscheidung welcher Vorgang beim D&D ausgeführt wird. Nur gibt Java dem Programm zuwenig Informationen um wirklich flexibel reagieren zu können.

Robert
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Lukas2904 LookAndFeel Wie ändere ich das allgemeine Disigne des Fensters? AWT, Swing, JavaFX & SWT 4
Drachenbauer Swing Wie ändere ich die Farbe der Konturen von jButton und jCombobox? AWT, Swing, JavaFX & SWT 18
Drachenbauer Swing Wie ändere ich die helle geklickt-Farbe von einem JButton? AWT, Swing, JavaFX & SWT 4
Drachenbauer Swing Wie ändere ich den Hintergrund vom Anzeigefeld einer JComboBox, die nicht zum Hineinschreiben offen steht? AWT, Swing, JavaFX & SWT 32
P AWT Fenster aktualisieren, nachdem ich JComboBox ändere AWT, Swing, JavaFX & SWT 9
C Default table model aktualisieren AWT, Swing, JavaFX & SWT 7
Hatsi09 JCombobox default wert AWT, Swing, JavaFX & SWT 6
T Default Table wird nicht angezeigt AWT, Swing, JavaFX & SWT 15
M Default-WindowListener JFrame entfernen (Stichwort: iconified) AWT, Swing, JavaFX & SWT 4
M JavaFX Scrollpane: Style von Contentpanel default AWT, Swing, JavaFX & SWT 1
Tom299 JavaFX Default-Cursor läßt sich nicht immer "aktivieren" AWT, Swing, JavaFX & SWT 3
R Ändern Default-Verhalten von JScrollpane in einer JScrollpane AWT, Swing, JavaFX & SWT 1
B Swing JTextPane - Einfärbungen auf "default" AWT, Swing, JavaFX & SWT 2
H default cell renderer AWT, Swing, JavaFX & SWT 3
J Swing Default-Eigenschaft bei JButton AWT, Swing, JavaFX & SWT 22
C Swing Default Werte für JFormattedTextField und Eingaben zurücksetzen AWT, Swing, JavaFX & SWT 5
M SWT DateTime per default null Wert ? AWT, Swing, JavaFX & SWT 3
S JTextField Default Text AWT, Swing, JavaFX & SWT 5
G Wie komm ich z.B. an das Default WarningMessageIcon ran? AWT, Swing, JavaFX & SWT 2
R TreeViewer in SWT: Default Selection eines Items AWT, Swing, JavaFX & SWT 3
hdi non-default close operation bei JDialog AWT, Swing, JavaFX & SWT 2
I Default Button AWT, Swing, JavaFX & SWT 5
G setLookAndFeel to default LookAndFeel? AWT, Swing, JavaFX & SWT 4
I "default"-Style im DefaultStyledDocument AWT, Swing, JavaFX & SWT 2
G default Layout für JPanel AWT, Swing, JavaFX & SWT 2
T Ändern des Default-Aussehens einer JComboBox AWT, Swing, JavaFX & SWT 3
D FileFilter Default Eintrag AWT, Swing, JavaFX & SWT 4
S Default Button in Dialogs(Ok und Cancel) AWT, Swing, JavaFX & SWT 4
H default format settings AWT, Swing, JavaFX & SWT 11
A (Default)TreeModel und wie die Daten hinein bekommen AWT, Swing, JavaFX & SWT 5
P Default Link in Swing, --> öffne Browser -> Browse URL AWT, Swing, JavaFX & SWT 8
M JavaFX Button action abhängigkeit von Tab AWT, Swing, JavaFX & SWT 1
B Probleme Action Listener Taschenrechner AWT, Swing, JavaFX & SWT 27
Z Befehl Action Event Verlassen AWT, Swing, JavaFX & SWT 4
J Action Listener Rückgabewert AWT, Swing, JavaFX & SWT 14
3 JComboBox - Action - Auslesen & Umwandeln AWT, Swing, JavaFX & SWT 9
J Java -8 Action Listener für mehrere Buttons AWT, Swing, JavaFX & SWT 9
S Action durchführen beim Programm beenden AWT, Swing, JavaFX & SWT 3
K Swing KeyBinding: Action wird nicht ausgelöst AWT, Swing, JavaFX & SWT 3
K Array von einer Action zur anderen bringen AWT, Swing, JavaFX & SWT 7
T action für Button übergeben - bitte um Segen AWT, Swing, JavaFX & SWT 1
F In Action Listener TextFields einlesen und prüfen. Abbruch bei falschen Eingaben. Wie mache ich das? AWT, Swing, JavaFX & SWT 2
G mehrere Action-Abfolgen erfassen AWT, Swing, JavaFX & SWT 6
I Button Action AWT, Swing, JavaFX & SWT 6
C Swing MenuItem feuert Action nur wenn disabled AWT, Swing, JavaFX & SWT 2
K Action Listener implementieren über Objekt AWT, Swing, JavaFX & SWT 14
H Problem mit dem Action listener.... AWT, Swing, JavaFX & SWT 2
J SWT Rechteck Füllfarbe wird bei Action falsch gefüll AWT, Swing, JavaFX & SWT 2
S Action Listener in innerer Klasse ausführen. AWT, Swing, JavaFX & SWT 8
D Drag-Action: Innerhalb meiner View? AWT, Swing, JavaFX & SWT 3
alex_fairytail Swing Textfeld Action wenn geschrieben wird? AWT, Swing, JavaFX & SWT 6
R innere Action -> auf äußeres this zugreifen AWT, Swing, JavaFX & SWT 3
L Action listener in bestimmter spalte AWT, Swing, JavaFX & SWT 2
P Action Event abfangen etwas anders? AWT, Swing, JavaFX & SWT 2
J AWT Action Listener etc. AWT, Swing, JavaFX & SWT 7
N Swing nach Fensterrand Action ausführen? HILFE AWT, Swing, JavaFX & SWT 7
L ComboBox in Action AWT, Swing, JavaFX & SWT 4
M SWT Jface Action und localised Strings AWT, Swing, JavaFX & SWT 6
I Button Action AWT, Swing, JavaFX & SWT 4
K GUI, Action AWT, Swing, JavaFX & SWT 4
B Frage zu Button-Action AWT, Swing, JavaFX & SWT 3
J Action before actionPerformed! AWT, Swing, JavaFX & SWT 4
S Combo Box action listener AWT, Swing, JavaFX & SWT 2
A Action listener von Button AWT, Swing, JavaFX & SWT 5
M JButton Action Problem AWT, Swing, JavaFX & SWT 3
K Action.MNEMONIC mit char belegen. AWT, Swing, JavaFX & SWT 2
M Action.DISPLAYED_MNEMONIC_INDEX_KEY geht nicht mehr AWT, Swing, JavaFX & SWT 2
O Action Event auslösen bei unbekanntem JTextField AWT, Swing, JavaFX & SWT 3
G SWT ApplicationActionBarAdvisor Action AWT, Swing, JavaFX & SWT 11
G Action? AWT, Swing, JavaFX & SWT 2
0 (Action)Listener auslagern? AWT, Swing, JavaFX & SWT 9
K kleine frage zum Spinner (bezüglich Action) AWT, Swing, JavaFX & SWT 2
F Problem mit Action Listener in privater inneren Klasse AWT, Swing, JavaFX & SWT 6
S Action Handler JButton AWT, Swing, JavaFX & SWT 15
S Buttons werden nach action grau AWT, Swing, JavaFX & SWT 4
S Action mit 2 verschiednen texten AWT, Swing, JavaFX & SWT 2
A SWT: Action über Hotkey ausführen AWT, Swing, JavaFX & SWT 2
G Action.setCheck(boolean)? AWT, Swing, JavaFX & SWT 6
A Mit der Combobox eine Action auslösen AWT, Swing, JavaFX & SWT 2
X Action aktivieren AWT, Swing, JavaFX & SWT 2
J mehrere Action Buttons mit einer ActionListener Methode AWT, Swing, JavaFX & SWT 7
A Action Listener AWT, Swing, JavaFX & SWT 14
S JMenuBar mit Action belegen! AWT, Swing, JavaFX & SWT 5
R action performed und IOException AWT, Swing, JavaFX & SWT 4
F Wo kann ich eine Action einsetzen? AWT, Swing, JavaFX & SWT 2
F Action ausführen? AWT, Swing, JavaFX & SWT 3
G Action Listener erzeugen AWT, Swing, JavaFX & SWT 6
C tree action AWT, Swing, JavaFX & SWT 8
W Bei hinzufügen der Action verliert Button Text,Tooltip, etc AWT, Swing, JavaFX & SWT 5
B Problem mit Übergabe bei action in andere Klasse AWT, Swing, JavaFX & SWT 4
X Action und Frame AWT, Swing, JavaFX & SWT 3
K Jtree und Action Event AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben