import java.awt.BorderLayout;
import java.awt.GridLayout;

import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JTextField;


public class Exercice2_3 
{
	public static void main(String[] args) 
	{
		JFrame jf = new JFrame("Ma super IHM !");
		jf.setSize(300, 300);
		jf.setLayout(new BorderLayout()); // BorderLayout => Crée un style Border
		
		/** Barre de menu **/
		JMenuBar m = new JMenuBar();
		
		JMenu menu = new JMenu("Fichier");
		
		JMenuItem item1 = new JMenuItem("Ouvrir..");
		JMenuItem item2 = new JMenuItem("Quitter");
		menu.add(item1);
		menu.add(item2);
		m.add(menu);
		jf.setJMenuBar(m);
		
		/** Composants **/
		
			// Boutons
		JPanel jp = new JPanel(); // Je crée un conteneur pouvant contenir d'autres composants et qui dispose également de son Layout propre.
		jp.setLayout(new GridLayout(10,10)); // Je lui met un GridLayout
		for (int i = 0; i < 10; i++) 
		{
			for (int j = 0; j < 10; j++) 
			{
				JButton bouton = new JButton("X"); // Je génère 10x10 boutons
				jp.add(bouton);
			}
			
		}
		jf.add(jp,BorderLayout.CENTER); // J'ajoute mon panel à ma frame

			// Liste déroulante
		String[] liste = {"Probleme 1", "Probleme 2"};
		JList l = new JList(liste);
		//l.setLocation(120,40);
		//l.setSize(100,35);
		jf.add(l, BorderLayout.WEST);
		
			// CheckBox
		JCheckBox box = new JCheckBox("Toto");
		//box.setLocation(10,70);
		//box.setSize(100,35);
		jf.add(box, BorderLayout.EAST);
		
			// Label
		JLabel label = new JLabel("Texte non modifiable", JLabel.CENTER);
		//label.setLocation(0,100);
		//label.setSize(300,35);
		jf.add(label, BorderLayout.SOUTH);
		
			// TextField
		JTextField tf = new JTextField("tokoztkozktztokzotk");
		//tf.setLocation(0,130);
		//tf.setSize(100,35);
		jf.add(tf, BorderLayout.NORTH);
		
		jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		jf.setVisible(true);
	}
}
