import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Label;
import java.awt.Window;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class AWTEx3i {
	private Label mousePos,
					  counterVal;

	private static AWTEx3i app;

	public static void main(String[] args) {
		app = new AWTEx3i();
	} //main()

	public AWTEx3i() {
		Frame wnd = new Frame("Einfaches Fenster");
		mousePos = new Label("mouse pos");
		counterVal = new Label("0");
		Button counter = new Button("add one!");

		wnd.setSize(200,100);
		wnd.setLayout(new FlowLayout() );
		wnd.add (mousePos);
		wnd.add(counter);
		wnd.add(counterVal);

		wnd.addWindowListener( new WindowAdapter() {
			public void windowClosing(WindowEvent we) {
				Window wnd = we.getWindow();

				wnd.setVisible(false);
				wnd.dispose();
				System.exit(0);
			} //windowClosing()
		}//anonymous inner class
		);

		wnd.addMouseMotionListener( new MouseMotionAdapter() {
			public void mouseMoved( MouseEvent me) {
				app.setMousePos( "("+me.getX()+","+me.getY()+")" );
			} //mouseMoved()
		} //anonymous inner class
		);

		counter.addMouseListener( new MouseAdapter() {
			public void mouseClicked( MouseEvent me) 	{
				app.incrementCounter();
			} //mouseClicked()
		} //anonymous inner class
		);

		wnd.addMouseListener( new MouseAdapter() {
			public void mouseClicked( MouseEvent me) {
				app.decrementCounter();
			} //mouseClicked()
		} //anonymous inner class
		);

		wnd.setVisible(true);
	} //constructor

	public void setMousePos(String newText) {
		mousePos.setText( newText );
	} //setMousePos()

	public void incrementCounter() {
		counterVal.setText( ""+(Integer.parseInt(counterVal.getText())+1) );
	} //incrementCounter()

	public void decrementCounter() {
		counterVal.setText( ""+(Integer.parseInt(counterVal.getText())-1) );
	} //incrementCounter()
} //class AWTEx3i