Pregunta

Tengo una aplicación Java y quiero poner en práctica una opción de deshacer / rehacer. el valor que quiero de valores y que yo quiero ser capaz de recuperarse es un entero.

implementos Model mi clase de la interfaz de StateEditable y yo tenemos que redefinir las 2 funciones restoreState(Hashtable<?, ?> state) y storeState(Hashtable<Object, Object> state) pero no sé qué poner en ellos. Va a ser muy grande si alguien me puede ayudar a hacer eso. Estas son las primeras líneas de mi clase Model, el valor que yo quiero hacer un deshacer / rehacer en él es 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)
        {

        }
}
¿Fue útil?

Solución

De mirar a través de un ejemplo de StateEditable , se Parece ser que en su método storeState, es necesario rellenar la Hashtable que se pasa. del mismo modo, el estado de asignación en su restoreState del Hashtable que se pasa. usted tendrá que definir una clave para el valor en el Hashtable. Con esto en mente, sugiero que se agrega

private final String KEY = "myKey";

a la parte superior de su archivo, y luego llenar los dos métodos de esta manera:

    @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);
    }
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top