JavaBeans are Java classes that follow these conventions:
provide a no-argument constructor
provide setters and getters for properties, following a standard naming convention, for example, methods called getName and setName provide a read/write property called "name"; for boolean properties, the getter methods can start with "get" or "is", for example, an isConnected method to get the value of a property named "connected"
provide add/remove methods for event listeners
thread and security aware so that the JavaBean can run in an applet, application, servlet, etc.