NetBeans does something like this:
where | - caret position. If I will try to type ')' again, and if there all brackets closed - it will just move caret one character forward instead of inserting ')'. Seems like I need to override some typing action to do that, I saw, you got some action like, move one character forward, or maybe I need to subclass typing action.
I could do this by adding KeyListener, but I'm not sure if this is a good idea.