I see you've implemented `ActionListener` interface, but do you really need it? You are not using it with the `addActionListener()`.

I don't know whether it would be useful for the future, but right now I think we only need the `KeyListener`.