package javacodebook.gui.tablerenderer;

import javax.swing.*;
import javax.swing.table.*;
import java.awt.event.*;
import java.awt.*;

/**
 * @author Benjamin Rusch
 * 
 * In diesem JFrame wird eine Tabelle platziert.
 */

public class RendereTableJFrame  extends JFrame {
	
	
	/**
	 * Im Konstruktor der Tabelle wird eine Instanz unseres NameTableModels 
	 * übergeben, sämtliche Inhalte werden von ihm geliefert.
	 */
	private JTable table = new JTable( new NameTableModel() );
	
	/**
	 * 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 RendereTableJFrame.  
 	*/	
	public RendereTableJFrame(String title) {
		
		super(title);	
	   	setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	    content = this.getContentPane();
		
		// Eine Scrollpane darf nicht direkt, sondern muss immer 
		// über Ihren Viewport bestückt werden.
		scrollPane.getViewport().add(table);
		
		// Die Spalte "Stadt" bekommt einen selbstgeschriebenen Renderer
		// jedesmal wenn diese Spalte dargestellt wird, wird der Renderer, in
		// unserem Fall der ColoredRenderer, gefragt wie sie dargestellt 
		// werden soll		
		TableColumn tc = table.getColumn("Stadt");
		tc.setCellRenderer(new ColoredCellRenderer());
		
		// ScrollPane wird auf die contentPane gelegt
		content.add(scrollPane);

	}

}
