package javacodebook.gui.centerframe;

/**
 * @author Benjamin Rusch
 * In der Starter Klasse mit der main Methode wird das CenteredFrame-Object 
 * erstellt, zentriert und sichtbar gemacht.
 */
import java.awt.*;
import java.awt.event.*;

public class CenteredFrame {

	public static void main(String[] args) {
		
		// Instaziierung des Frame
		Frame cf =  new Frame("Zentriertes Fenster");
		    
		// Beim Klicken des Schließen-Buttons vom HauptFenster
		// wird das Programm beendet.
		cf.addWindowListener(new WindowAdapter() {
		    public void windowClosing(WindowEvent we) {
				System.exit(0);
		    }
		});
		
		cf.setSize(300,300);
		
		// Über das DefaultToolkit kann die Bildschirmgröße bestimmt werden
		Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
		
		// Halbe Bildschirmabmessung ergibt Bildschirmmittelpunkt	
		int xCenter = dim.width/2;
		int yCenter = dim.height/2;

		// Die Platzierung von Fenstern orientiert sich an der linken oberen Ecke.
		// Zur Korrektur, muss somit die halbe Komponentenabmessung mit eingerechnet werden
		int xDiff = cf.getWidth()/2;
		int yDiff = cf.getHeight()/2;
		int xCalculated = xCenter-xDiff;
		int yCalculated = yCenter-yDiff;

		// setLocation legt den Ort der Komponente fest			
		cf.setLocation(xCalculated,yCalculated);
		
		// setVisible(true) macht sie sichtbar
		cf.setVisible(true);
	}
}
