Q1 <conjunctive>If fp had to be used inside of the method local class, it had to be final. Otherwise the method local class had no access to it.</conjunctive> Because fp is a method local variable that lives on the stack. If it weren't final, it might be dumped already when an object of the inner class is still alive. But if the parameter variable fp isn't really used, as Manfred wrote, it doesn't really needs to be final.
Q2 as Manfred wrote. The method is static an nothing in it has access to non-static members of the outer class.
Q3 see Manfred again. The inner class itself is not static, simply because there is no such a thing as a static class (the so called static inner classes are not static by themself, but they are static members of the outer classes). And there is no use of this inside a static method. The this is used in the constructor of the inner class. As from a constructor, a non-static variable (j) has access to a non-static (& non-private) variable (nsf) of the super class.
all events occur in real time
These are not the droids you are looking for. Perhaps I can interest you in a tiny ad?