Ich brauche Hilfe in Undo-Funktion in Java
Frage
Ich schreibe einen Text-Editor mit Java, und ich möchte Undo-Funktion, um es
hinzufügenaber ohne UndoManager Klasse, ich brauche eine Datenstruktur wie Stapel oder LinkedList zu verwenden, aber die Stack-Klasse in Java Verwendung Objektparametern z: push (Object o) nicht drücken (String s) Ich brauche ein paar Hinweise oder Links. Dank
Lösung
Angenommen, Sie verwenden Java 5, ist Stapel eine generische Klasse. Sie können es instanziiert nach den Objekten sollte es halten.
Sie können dann mit:
Stack<String> stack = new Stack<String>();
String string = "someString";
stack.push(string);
Beachten Sie auch, dass in dem Fall, dass Sie verwenden Java 1.4 oder unten, können Sie immer noch schieben String Stack-Objekte in. Nur, dass Sie explizit müssen niedergeschlagenen, wenn Sie Pop (), um sie aus, etwa so:
Stack stack = new Stack();
String string = "someString";
stack.push(string);
String popString = (String) stack.pop(); // pop() returns an Object which needs to be downcasted
Andere Tipps
Die "Datenstruktur", die in der Tat ein Muster ist, heißt Memento . Es ist hilfreich, wenn Sie mehrere Staaten und haben die Möglichkeit, zurück in einen früheren Zustand speichern müssen. Für eine effiziente Datenspeicherung der Staaten hängt davon ab, welche Art von einem Texteditor Sie tun, wenn einige Formatierungen tun können, dann nehmen Sie einen Blick auf die Flyweight Muster.
Hmmm ...
Es scheint ein wenig wie ein Fall von RTFM mir ;-)
Wenn Sie mit Java 1.4.2 Sie müssen einfach explizit Besetzung Ihre Objekte, wenn Sie sie von Ihrem Stapel bekommen:
Command cmd = (Command) stack.pop(); // same for peek() etc.
Wenn Sie mit Java 1.5, verwendet
Ok ich es lösen Ich muß den Text in dem Textfeld Drücken Sie nicht die Zeichen von der Tastatur Danke Jungs