package javacodebook.gui.layouts;

import java.awt.*;
import java.awt.event.*;

/**
 * @author Benjamin Rusch
 * 
 * In diesem Frame wird das Layout des Frames auf BorderLayout
 * gesetzt. Alle Bereiche des BorderLayout werden mit einem Button belegt, 
 * um die Ausdehnung der Bereiche erkennbar zu machen.
 */

public class BorderFrame  extends Frame {
	
	private Button north 	= new Button("Norden");
	private Button south 	= new Button("Süden");
	private Button west 	= new Button("Westen");
	private Button east 	= new Button("Osten");
	private Button center 	= new Button("Mitte");
	
	
	/**
 	*	Konstruktor von BorderFrame.  
 	*/	
	public BorderFrame(String title) {
		
		super(title);
	 
	    // Beim Klicken des Schließen-Buttons vom HauptFenster
		// wird das Programm beendet.
		this.addWindowListener(new WindowAdapter() {
		    public void windowClosing(WindowEvent we) {
				System.exit(0);
		    }
		});
				
		// Eine Instanz von dem Layout wird benötigt	
		BorderLayout borderLayout= new BorderLayout();
		
		// die Instanz von BorderLayout wird dem Frame übergeben
		this.setLayout(borderLayout);
		
		// beim Setzen der Komponente kann dem add ein String mitgegeben werden
		// in Fall vom BorderLayout wird dieser String ausgelesen um die Position der 
		// Komponenten zu bestimmen. Verwendet werden vordefiniert Kostanten aus 
		// der BorderLayout Klasse.
		this.add(north,BorderLayout.NORTH);
		this.add(south,BorderLayout.SOUTH);
		this.add(west,BorderLayout.WEST);
		this.add(east,BorderLayout.EAST);
		
		// Die Angabe der Konstante BorderLayout.CENTER ist redundant, könnte also auch 
		// weggelassen werden, da alle Komponenten per default ins CENTER gelegt 
		// werden 
		this.add(center,BorderLayout.CENTER);	
	}
}
