package javacodebook.gui.tablemodel;

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;

/**
 * @author Benjamin Rusch
 * 
 * In diesem JFrame wird eine Tabelle platziert. Die Werte der Tabelle werden 
 * über eine Instanz der Klasse NameTableModel zur Verfügung gestellt.
 */

public class TableModelJFrame  extends JFrame {
	
	/**
	* Das NameTableModel wird instanziiert.
	*/
	private NameTableModel ntm = new NameTableModel();
	
	/**
	 * Im Konstruktor der Tabelle wird eine Instanz unseres NameTableModels 
	 * übergeben, sämtliche Inhalte werden von ihm geliefert.
	 */
	private JTable table = new JTable(ntm);
	
	/**
	 * JScrollpane stellt per Default die Tabellenüberschriften von 
	 * eingebetteten Tabellen dar. Legt man die Tabelle einfach in ein 
	 * Panel, würden keine Überschriften erscheinen.
	 */ 
	private JScrollPane scrollPane = new JScrollPane();
	
	private Container content 	= null;
	
	/**
 	*	Konstruktor von TableModelJFrame.  
 	*/	
	public TableModelJFrame(String title) {
		
		super(title);
	    content = this.getContentPane();
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		// Das Einabe Frame wird gebaut
		EingabeJFrame ef =  new EingabeJFrame(ntm,"Fenster für Tabellen Eingabe");
		ef.setLocation(100,50);
		ef.setSize(300,150);
		ef.setVisible(true);
		
		// Eine Scrollpane darf nicht direkt, sondern muss immer 
		// über Ihren Viewport bestückt werden.
		scrollPane.getViewport().add(table);
		
		// ScrollPane wird auf die contentPane gelegt
		content.add(scrollPane);		
	}
}
