Keystroke für Ausschneiden läßt sich nicht ändern

eiligerwind

Mitglied
Hallo ZUsammen,
ich hatte die Aufgabe für einen Texteditor die Funktionen Cut, Copy und Paste in der Symbolleiste einzufügen. Das hat auch soweit funktioniert und tut was es soll.

Bis auf dass ich statt der Standard Shortcuts andere Tastaturkombinationen nehmen wollte. Das einfügen der Aktionen sollte dabei mittels des DefaultEditorKits erfolgen. Unten nachstehender Code. Es ist zwar nicht Teil der Aufgabenstellung die Shortcuts zu implementieren, dennoch will ich gerne verstehen warum die von mir definierten Keystrokes nicht zur Anwendung kommen. Der Editor nutzt weiterhin offensichtlich die Standard Keystrokes (Strg+X; Strg+C; Strg+V)... was übersehe ich? Vielen Dank für eure Unterstützung

[CODE lang="java" title="Aktionen"]//Aufgabe2 eingefügt
Action schneiden = new DefaultEditorKit.CutAction();
schneiden.putValue(Action.SHORT_DESCRIPTION, "Ausschneiden");
schneiden.putValue(Action.LARGE_ICON_KEY, new ImageIcon ("icons/cut24.gif"));
schneiden.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke('Z', InputEvent.CTRL_DOWN_MASK));
leiste.add(schneiden);
//Aufgabe2 eingefügt
Action kopieren = new DefaultEditorKit.CopyAction();
kopieren.putValue(Action.SHORT_DESCRIPTION, "Kopieren");
kopieren.putValue(Action.LARGE_ICON_KEY, new ImageIcon ("icons/copy24.gif"));
kopieren.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke('H', InputEvent.CTRL_DOWN_MASK));
leiste.add(kopieren);
//Aufgabe2 eingefügt
Action einfügen = new DefaultEditorKit.PasteAction();
einfügen.putValue(Action.SHORT_DESCRIPTION, "Einfügen");
einfügen.putValue(Action.LARGE_ICON_KEY, new ImageIcon ("icons/paste24.gif"));
einfügen.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke('L', InputEvent.CTRL_DOWN_MASK));
leiste.add(einfügen);[/CODE]
 
Nach meinem Verständnis fügst ja nur neue Wege hinzu für diese Actions. Aber du löscht die vorhandenen nicht raus.

Was Du also machen könntest wäre ggf. leere Actions definieren mit den Tastenkombinationen, deren default Verhalten Du nicht mehr willst.
Oder Du kannst aus den Elementen, in denen diese Aktionen nicht gelten sollen, mit getInputMap dir das Mapping holen und anpassen.
 

Neue Themen


Zurück
Oben