    import java.awt.*;
    import java.awt.event.*;
    import chat.*;
    import org.omg.CORBA.*;

    public class ChatClient extends Frame {
        private TextArea    chatData;
        private TextField   sendData;
        private Button      connectButton;
        private Button      sendButton;

        public ChatClient() {
            setLayout(new BorderLayout());
            add(chatData = new TextArea(10, 20), "Center");
            Panel bottom = new Panel();
            bottom.setLayout(new GridLayout(2,2));
            bottom.add(new Label("Data: "));
            bottom.add(sendData = new TextField());
            bottom.add(sendButton = new Button("Send"));
            bottom.add(connectButton = new Button("Connect"));
            add(bottom, "South");
            pack();

            sendButton.setEnabled(false);

            ButtonListener listener = new ButtonListener();
            connectButton.addActionListener(listener);
            sendButton.addActionListener(listener);
        }

        class ButtonListener implements ActionListener {
            private ORB         orb = null;
            private BOA         boa = null;
            private ChatServerI server = null;

            public void actionPerformed(ActionEvent ae) {
                if(ae.getSource() == connectButton) doConnect();
                else doSend();
            }

            private void doConnect() {
                orb = ORB.init();
                boa = orb.BOA_init();
                server = ChatServerIHelper.bind(orb, "JavaPRO");
                ChatListenerI listener = new Listener();
                boa.obj_is_ready(listener);
                server.addListener(listener);
                sendButton.setEnabled(true);
                connectButton.setEnabled(false);
                System.out.println("connected");
            }

            private void doSend() {
                server.sendMessage(sendData.getText());
                sendData.setText("");
            }
        }

        class Listener extends _ChatListenerIImplBase {
            public Listener() {
                super();
            }

            public void messageReceived(String message) {
                chatData.append(message+"\n");
            }
        }

        public static final void main(String args[]) {
            ChatClient client = new ChatClient();
            client.setVisible(true);
        }
    }