0

Java アプリケーションがあり、元に戻す/やり直しオプションを実装したいと考えています。ストックしたい、回収したい値は整数です。

私のクラスModelはインターフェイスStateEditableを実装しており、2 つの関数を再定義する必要がありrestoreState(Hashtable<?, ?> state)ますstoreState(Hashtable<Object, Object> state)が、それらに何を配置すればよいかわかりません。誰かが私がそれをするのを手伝ってくれるなら、それは本当に素晴らしいことです. これらは私のModelクラスの最初の行です。元に戻す/やり直したい値はvalue

public class Model extends Observable implements StateEditable
{
        private int value = 5;

        private UndoManager undoRedo = new UndoManager();

        final UndoableEditListener editListener = new UndoableEditListener() {
        public void undoableEditHappened(UndoableEditEvent evt) {
            undoRedo.addEdit(evt.getEdit());
            }
        };

        @Override
        public void restoreState(Hashtable<?, ?> state)
        {

        }

        @Override
        public void storeState(Hashtable<Object, Object> state)
        {

        }
}
4

1 に答える 1

1

の例をStateEditable見ると、storeStateメソッドで、渡された に値を設定する必要があることHashtableがわかります。同様に、渡されたrestoreStateからに状態を割り当てますHashtable。値のキーを で定義する必要があります。Hashtable。_ それを念頭に置いて、追加することをお勧めします

private final String KEY = "myKey";

ファイルの先頭に移動し、次のように 2 つのメソッドに入力します。

    @Override
    public void restoreState(Hashtable<?, ?> state) 
    {
       Object val = state.get(KEY);
       if( val instanceof Integer ) //performs the null test for us.
       {
          value = val;
       }
    }

    @Override
    public void storeState(Hashtable<Object, Object> state) 
    {
        state.put(KEY, value);
    }
于 2010-05-25T13:14:03.680 に答える