package javacodebook.gui.splitpane;

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;

/**
 * @author Benjamin Rusch
 *
 * Zwei in einander verschachtelte JSplitPanes werden dargestellt. Sie 
 * beinhalten jeweils ein Label, welches die Position angibt.
 */

public class SplittedJFrame  extends JFrame {

   	// Zwei teilbare Container werden in diesem Beispiel verwendet
   	private JSplitPane horizontal = null;
   	private JSplitPane vertical = null;

	// In die teilbaren Container werden Labels eingebettet um die Position 
	// deutlich zu machen	
	private JLabel top = new JLabel("Oben",JLabel.CENTER);
	private JPanel bottom = new JPanel();
	private JLabel left = new JLabel("Links",JLabel.CENTER);
	private JLabel right = new JLabel("Rechts",JLabel.CENTER);
   	   	
    private Container content = null;

    /**
     *	Konstruktor von SplittedJFrame.
     */
    public SplittedJFrame(String title) {

		super(title);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		content = this.getContentPane();
	
		// Bei der Instanziierung der SplitPane wird die Ausrichtung und der 
		// Inhalt der beiden Felder übergeben
		horizontal = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, left,right);	
		vertical = new JSplitPane(JSplitPane.VERTICAL_SPLIT, top, bottom);
		
		// da bottom ein Container ist, kann er jede beliebige Komponente 
		// aufnehmen, also auch wieder eine JSplitPane. 	
		bottom.setLayout(new BorderLayout());
		bottom.add(horizontal);
		content.add(vertical);
    }
}