Frage

Ich schreibe einen Text-Editor mit Java, und ich möchte Undo-Funktion, um es

hinzufügen

aber 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

War es hilfreich?

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

scroll top