Cut, Copy und Paste in Symbolleiste einfügen

Mane123

Bekanntes Mitglied
Hallo zusammen,

ich soll in einer Aufgabe die Funktion Cut, Copy und Paste in eine Textverarbeitung einfügen.

Als Hinweis wurde mir gegeben, dass ich die Standard-Aktionen aus der Klasse DefaultEditorKit verwenden soll.

Ich hätte das jetzt wie folgt zum Beispiel gelöst:

Java:
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('C', InputEvent.CTRL_DOWN_MASK));
symbolLeiste.add(kopieren);

Allerdings verwende ich ja nicht die Klasse DefaultEditorKit sondern die Klasse DefaultEditorKit.CopyAction()?
Ist das so korrekt oder habe ich das falsch gelöst?

Vielen Dank!

Viele Grüße
 
naja nachdem CopyAction eine nested Class von DefaultEditorKit ist, benutzt du doch die Klasse DefaultEditorKit 🙂
 
Danke für die Antwort!

Gibt es da auch noch eine andere Möglichkeit dies umzusetzen?

Ich verstehe das nicht was es mit den Constant Field Values auf sich hat?
Für was benötigte ich z.B.
Java:
public static final String copyAction
?

Warum wird hier copyAction klein geschrieben? Bei JOptionPane.YES_NO_OPTION wird der gesamte Wert in Großbuchstaben geschrieben.

Vielen Dank!

Viele Grüße
 
Jo stimmt, ist etwas unschön...

Aber an sich hat die Textkomponente schon eine ActionMap, d.h. es würde einfach so etwas gehen wie:

Java:
Action cutAction = textField.getActionMap().get(DefaultEditorKit.cutAction); //bzw get("cut-to-clipboard") wenn dir das cutAction nicht gefällt :D
JButton cutButton = new JButton(cutAction);
cutButton.setText("Cut");
//usw....

Hilft das?
 
weil copyAction eine finale Methode ist, die einen String liefert und JOptionPane.YES_NO_OPTION ein finaler int. Bei Methoden ist die Konvention immer gleich. Egal, ob sie final ist (kann nicht überschrieben werden) oder nicht.
Bei Variablen gibt es dagegen solche Konventionen:
final int ICH_BIN_EINE_KONSTANTE
int ichBinEineVariable

bei deiner anderen Frage müsst ich mich jetzt reinlesen. Hab ich noch nicht gemacht. Vllt weiss da jemand anderes Rat 🙂
 

Zurück
Oben