import java.applet.*;
import java.awt.*;

public class ActivityBox extends Applet
{

	//Deklarationen
	String infoString = new String("No News");
	MousePanel ccp = new MousePanel(40,60,infoString);
	String southString = "South";
	Button southButton = new Button (southString);

	public void init()
	{
    	setLayout(new BorderLayout(5,5));
		MousePanel np = new MousePanel(50,50,"North");
		add("North",np);
		np.setBackground(Color.cyan);
		MousePanel sp = new MousePanel(100,100);
		sp.add(southButton);
		add("South",sp);
		sp.setBackground(Color.cyan);
		MousePanel ep = new MousePanel(100,100,"East");
		add("East",ep);
		ep.setBackground(Color.cyan);
		MousePanel wp = new MousePanel(100,100,"West");
		add("West",wp);
		wp.setBackground(Color.cyan);
		MousePanel cp = new MousePanel(100,100,"Center");
		add("Center",cp);
		cp.setBackground(Color.cyan);
		cp.setLayout(new FlowLayout());
		ccp.setBackground(Color.blue);
		cp.add(ccp);

	}

	public boolean action(Event evt, Object what)
	{
		if (southString.equals(what))
		{
			ccp.setBackground(Color.blue);
			ccp.blankNameTag();
			ccp.repaint();
			return true;
		}
		return false;
	}

	public boolean keydown(Event evt, int key)
	{
		ccp.addToNameTag(""+(char) key);
		repaint();
		return true;
	}


}

class MousePanel extends Panel
{
	String nameTag = "";
	Dimension dimension_ = new Dimension(15,15);

	MousePanel(int h, int w)
	{
		dimension_.height = h;
		dimension_.width = w;
	}

	MousePanel(int h, int w, String nt)
	{
		dimension_.height = h;
		dimension_.width = w;
        nameTag = nt;
	}

	public void paint(Graphics g)
	{
		g.drawString(nameTag,5,10);
	}

	public Dimension preferredSize()
	{
		return dimension_;
	}

	public Dimension minimumSize()
	{
		return dimension_;
	}

	public void addToNameTag(String s)
	{
		nameTag = nameTag + s;
		repaint();
	}

	public void blankNameTag()
	{
		nameTag = "";
		repaint();
	}

	public boolean mouseEnter(Event evt, int x, int y)
	{
		setBackground(Color.blue);
		repaint();
		return true;
	}

	public boolean mouseExit(Event evt, int x, int y)
	{
		setBackground(Color.cyan);
		repaint();
		return true;
	}

	public boolean keyDown(Event evt, int key)
	{
		blankNameTag();
		nameTag = nameTag + (char) key;
		repaint();
		return false;
	}

}