2010-05-25 3 views
0

Java 응용 프로그램이있어서 실행 취소/다시 실행 옵션을 구현하고 싶습니다. 재고를 원하고 복구 할 수있는 값은 정수입니다.MVC에서 실행 취소/다시 실행 구현

내 클래스 Model 인터페이스 StateEditable를 구현하고 나는이 개 기능 restoreState(Hashtable<?, ?> state)storeState(Hashtable<Object, Object> state)를 재정의해야하지만 난 그들에 무엇을 넣어 모른다. 누군가가 저를 도울 수 있다면 정말 좋을 것입니다. 이 내 Model 클래스의 첫 번째 라인, 그것은 당신의 storeState 방법이 나타날 것입니다, 당신이 필요로하는 그것이 example of StateEditable를 통해보고에서 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) 
     { 

     } 
} 

답변

1

입니다에 내가/실행 취소을 다시 할 가치입니다 전달 된 Hashtable을 채 웁니다. 마찬가지로 전달 된 Hashtable에서 restoreState의 상태를 할당합니다. Hashtable의 값에 대한 키를 정의해야합니다.

@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); 
    } 
: 염두에두고, 나는 당신이 두 가지 방법과 같이 작성 후 파일의 맨 위에

private final String KEY = "myKey"; 

를 추가하는 것이 좋습니다