
// import 
import javax.swing.JTable;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTextArea;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JComponent;

import java.awt.BorderLayout;

/**
 * Classe ouvrant une JFrame contenant le JPanel passé en paramètre du 
 * constructeur et placé aux coordonnées précisées.
 * @author Johann Heymes
 */
public class EnteteJTable extends JFrame
{    

    /**
	 * onstructeur de cette classe de démonstration
	 * @param titre le titre de la JFrame a creer
	 */
    public EnteteJTable (String titre, JComponent panel, int x, int y)
    {	
		super (titre);

		this.getContentPane ().add (panel);
    	this.setLocation (x, y);
		this.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
		this.pack ();
		this.setVisible (true);
    }
    
    
	/**
	 * Methode main :
	 *		Cree une instance avec une JTable sans les entêtes puis
	 * 	
	 */
    public static void main (String argv [])
    {
		// Label des colonnes pour les JTables
		String [] columns = {"Sandwich", "Disponible", "Prix"};

		// Données utilisées pour les JTables
		Object [][] data = { 
			{ "Jambon",  new Boolean (false), new Float (4.99) },
			{ "Grillade", new Boolean (true), new Float (5.99) },
			{ "Dinde", new Boolean (false), new Float (4.99) },
			{ "Cresson", new Boolean (true), new Float (4.99) },
		};

		// première JTable celle qui que visiblement vous obtenez qui n'a pas
		// les entetes de la JTable
		JTable table1 = new JTable (data, columns);
		JSplitPane split1 = new JSplitPane (JSplitPane.VERTICAL_SPLIT, true, table1, new JTextArea (" Sans ent\u00EAte "));
		new EnteteJTable ("sans ent\u00EAte", split1, 50, 150);

		// une solution possible pour afficher les entetes de la JTable sans etre 
		// dans un JScrollPane
		JTable table2 = new JTable (data, columns);
		JPanel tableau = new JPanel (new BorderLayout ());
		// ajoute les entetes au nord du conteneur
		tableau.add (table2.getTableHeader (), BorderLayout.NORTH);
		tableau.add (table2, BorderLayout.CENTER);
		JSplitPane split2 = new JSplitPane (JSplitPane.VERTICAL_SPLIT, true, tableau, new JTextArea (" Avec ent\u00EAte "));
		new EnteteJTable ("avec ent\u00EAte", split2, 400, 150);
	
    }
}
