UndoManager を使用して元に戻す/やり直し機能を理解し、それを MVC モデルと統合するのに問題があります。
さまざまなメソッド (モデル、ビュー、またはコントロール) を配置する場所がわかりません。また、元に戻すマネージャーの使用方法もまだわかりません。
私のコントロール クラスは UndoableEditListener を実装します。
private UndoManager manager = new UndoManager();
そして:
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("Undo")) {
try {
manager.undo();
} catch (CannotUndoException ex) {
ex.printStackTrace();
}
}
}
ここまでは理解できましたが、あとはどうすればいいのかわかりません。モデルとビュークラスにさらに追加する必要があることはわかっていますが、どこにあるのかわかりません。次のクラスを受講する必要がありますか?
public class UndoAction extends AbstractAction {}
public void undoableEditHappened(UndoableEditEvent e) {
テキストフィールドに整数を配置するだけで、これを元に戻したい.ビュークラスのテキストフィールドに数値を設定する.これを可能な限り簡単な方法で達成したい. これは私のassgのマイナーな部分ですが、うまくいきません!!
================================================== ======== これが私のコードのより詳細な説明です。
モデル、ビュー、およびコントロールのパッケージがあります。
Contol には次のものがあります: ButtonGUIControl.java、両方を実装します。
ActionListener and
UndoableEditListener.
final UndoManager manager = new UndoManager();
actionPerformed メソッドでは、
if (e.getActionCommand().equals("Undo")){
try {
manager.undo();
}
そして:
public void undoableEditHappened(UndoableEditEvent evt) {
manager.addEdit(evt.getEdit());
}
ビュー: JTextField を拡張する Grid.java は、GUI に数値を表示する必要がある場合に、以下を追加します:(モデルは単に私の Model クラスのインスタンスです)
getDocument().addUndoableEditListener(new ButtonGUIControl(model));
UndoManager が別のパッケージで作成されているためでしょうか? これをデバッグする方法が本当にわかりません!!
それが役に立ったら、コード全体を投稿できます。これを私のmvcモデル構造と統合する方法がわかりません。