I tried the program again with the two new lines below :
Curiously, I also faced the same problem as the OP faced. It wouldn't take the bulb image in the specific path (eventhough it was present), but the menu et all did work. The original program worked like a charm though. Still trying to figure out why the other approach didn't work.
Toolkit.getImage uses a file name, whereas the createImage uses a resource name. The former is relative to the current directory. The second is relative to the class file. Except when you are executing your Java program from the same folder as the class file, these two are different.