public void init() {
        System.out.println("INIT");
        setLayout(new BorderLayout());

        String tmp_props=getParameter("properties");
        if(tmp_props != null) {
            System.out.println("Setting parameters " + tmp_props);
            props=tmp_props;
        }


        try {
            channel=new JChannel(props);
            channel.setReceiver(new ReceiverAdapter() {
                public void viewAccepted(View v) {
                    List<Address> mbrs=v.getMembers();
                    System.out.println("View accepted: " + v);
                    member_size=v.size();

                    if(mbr_label != null)
                        mbr_label.setText(member_size + " mbr(s)");

                    members.clear();
                    members.addAll(mbrs);
                }

                public void receive(Message msg) {
                    if(msg == null || msg.getLength() == 0) {
                        log.error("DrawApplet.run(): msg or msg.buffer is null !");
                        return;
                    }

                    instream=new DataInputStream(new ByteArrayInputStream(msg.getRawBuffer(), msg.getOffset(), msg.getLength()));
                    int r=0;
                    try {
                        r=instream.readInt();
                        if(r == -13) {
                            clearPanel();
                            return;
                        }
                        int g=instream.readInt();
                        int b=instream.readInt();
                        int my_x=instream.readInt();
                        int my_y=instream.readInt();
                        if(graphics != null) {
                            graphics.setColor(new Color(r, g, b));
                            graphics.fillOval(my_x, my_y, 10, 10);
                            graphics.setColor(default_color);
                        }
                    }
                    catch(Exception ex) {
                        ex.printStackTrace();
                    }
                }
            });
            showStatus("Connecting to group " + groupname);
            channel.connect(groupname);
        }
        catch(Exception e) {
            e.printStackTrace();
        }
        go();
    }