How to add a system try icon with bubble message to Java application

The system tray is an area in your desktop where currently running processes with associated tray icon are shown and accessed. Adding a tray icon to programs are specially useful in long running applications where status changes during its execution. Program status can be visually communicated to the user through updatable tray icons and/or bubble messages attached to the tray icon.