Not sure what you mean by "predefined" because there is no difference in the ones Java provides or ones that you write.
For example, let's say you are using a MouseListener, and added it to some Component, then that interface gets assigned to a MouseListener field of the component.
Whenever an event from a Mouse is triggered, then this method is called (OpenJDK source). Notice that the interfaces methods are called here. (Note: there's additional work before this to detect that the event was actually caused by a Mouse).
You can imagine, though, that for a Button, the actionPerformed method goes through the same set of logic as a mouse click event.
protected void processMouseEvent(MouseEvent e) { MouseListener listener = mouseListener; if (listener != null) { int id = e.getID(); switch(id) { case MouseEvent.MOUSE_PRESSED: listener.mousePressed(e); break; case MouseEvent.MOUSE_RELEASED: listener.mouseReleased(e); break; case MouseEvent.MOUSE_CLICKED: listener.mouseClicked(e); break; case MouseEvent.MOUSE_EXITED: listener.mouseExited(e); break; case MouseEvent.MOUSE_ENTERED: listener.mouseEntered(e); break; } } }