/*
P R O G R A M M B E S C H R E I B U N G
1)
Es wird das Fenster MyFenster erzeugt und auf den Bildschirm gebracht
In diesem Fenster wird eine Zeichenfläche (Panel) erstellt.
In dieser Zeichenfläche werden 2 Labels, 2 Buttons (Schalter) und 
2 Textfelder erstellt.
In das Textfeld kann Text eingegeben werden, wobei dieser noch
nicht verarbeitet wird.

2) Layout
Zusätzlich wird ein Layout (2 Zeilen, 3 Spalten) für diese Zeichenfläche 
erstellt. 
Ein Layout ist eine Vorgabe, wie die grafischen Komponenten innerhalb
eines Panels bzw. eines Fensters angeordnet werden (z.B. wenn sie mit
add hinzugefügt werden).
Hier ist dieses Layout ein sogenanntes GridLayout, in dem die
Elemente zeilenweise eingefügt werden.

Bemerkung:
Die  2 Labels, 2 Buttons (Schalter) und 2 Textfelder sind zu groß.
In der nächsten Version wird gezeigt, wie man sie kleiner
machen kann.
*/



import java.awt.*;
import javax.swing.*;

// Hier wird ein Objekt der selbstgebastelten Klasse MyFenster erzeugt
public class MainFenster11 {
	public static void main(String[] args) {
		MyFenster myF = new MyFenster();
		myF.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}

// Ein Frame ist ein Fenster bzw. Fenstersegment
// Es ist nach seiner Erzeugung zuerst anfänglich unsichtbar.
// Hier wird die von JFrame abgeleitete Klasse MyFenster gebastelt, die 
// damit die ganze Leistungsfähigkeit von JFrame erbt.
class MyFenster extends JFrame{
	// Buttons (Schalter) deklarieren
	private JButton myB1, myB2;
	// Textfelder deklarieren
	private JTextField myT1, myT2;
	// Labels deklarieren
	private JLabel myL1, myL2;
	// Stelle in MyFenster deklarieren, an die montiert wird.	
	private Container myCont;
	// Layout
	private GridLayout myGL23;

	// Konstruktor
	public MyFenster(){
		// Erzeugt jeweils ein Button 
		myB1=new JButton("Go");
		myB2=new JButton("Go");
		// Erzeugt jeweils ein einzeiliges Textfeld mit dem vorgegebenen
		// Text und der vorgegebenen Spaltenzahl. Dieser Text kann 
		// (im Gegensatz zu einem Label) editiert werden
		myT1=new JTextField("hier eingeben",30);
		myT2=new JTextField("Eingabe hier",30);
		// Erzeugt jeweils ein Label (Beschriftung) mit dem vorgegebenen 
		// Text Dieser Text kann (im Gegensatz zu einem Textfeld) nicht 
		// editiert werden
		myL1=new JLabel("Euro --> Dollar");
		myL2=new JLabel("Dollar --> Euro");
		// Liefert die Stelle in MyFenster, an die montiert wird.
		myCont = getContentPane();
		// Erzeugt ein Layout
		myGL23 = new GridLayout(2,3);
		// Ordnet das Layout dem Container myCont zu und 
		// "formatiert" ihn damit.
		myCont.setLayout(myGL23);
		// Montiert die grafischen Komponenten in die Zeichenfläche
		myCont.add(myL1);
		myCont.add(myT1);
		myCont.add(myB1);
		myCont.add(myL2);
		myCont.add(myT2);
		myCont.add(myB2);
		// Fensterüberschrift festlegen
		setTitle("Meine Zeichnung");
		// Koordinaten des linken, oberen Ecks des Fensters festlegen
		// Koordinate x = 30, Koordinate y = 60.		
		setLocation(30,60);
		// Die Breite des Fensters in x-Richtung = 600
		// Die Breite des Fensters in y-Richtung = 400		
		setSize(600,400);
		// Macht das Fenster sichtbar
		setVisible(true);
	}
}





