You can see a screen-shot of the applet in figure 1.
The different GUI parts are as follows:
- Contact List
A list of ICQ network users. Each user-name is
color-coded for their current ICQ network status:
- Blue - user is on-line and available.
- Red - offline or not available.
A Click of a mouse on one of the user-names produces
that user's UIN in two fields:
- The User Identification Number (UIN) field of
the ``Manage Contact List'' Panel.
- The UIN field of the ``Send Message'' Panel.
- Login Frame
Enables the user to insert their details in order to log in
to the ICQ network.
Includes the following GUI elements: three text fields: UIN, nick-name and ICQ
password and a button titled ``login'' which starts a login process.
- Manage Contact List Frame
Enables the User to add or remove users from their
Contains the following GUI elements:
two text fields: UIN and nick-name fields, and two
buttons: Add and Remove.
- Send Messages Frame
Enables the user to send messages (typed in the
``Compose Message'' text area) to other ICQ
Contains the following GUI elements: a text field:
UIN and a ``Send Message'' Button.
- Action Select Frame
Enables the user to switch between ``Send Message''
and ``Manage Contact List'' frames as well as to
disconnect from the CSICQ Server.
Contains the following GUI elements: three buttons:
``Edit Contact List'', ``Send Message'' and
- Compose Message Text Area
Enables the user to type text messages they want to
send to other users. this text area is cleared when
the message is sent.
- Status Text Area
Shows all incoming and outgoing messages as well as
Most of these GUI elements have a specific Event Listener
Those Event Listeners are invoked upon a GUI event (e.g. a
button pressed), the action taken upon detecting such event
depends on the current Applet state.
Almost all of these GUI elements are being inherited
directly from a Swing Component (e.g. JButton,
JTextArea). An exception to this ``rule'' is the Contact
List, which is a combination of a GUI class and a Data Structure.