Your code tries to capture those events in the action listener implementation within another caught event, which means they will never be seen. Add another else if along with the other 'outer' ones...