import java.awt.*;
import java.awt.event.*;
import java.util.Random;

import javax.swing.*;

public class BorderLayoutPastelRenkler extends JFrame implements ActionListener {

	char a = '\u2550'; // ═
	char b = '\u2551'; // ║
	char c = '\u2554'; // ╔
	char d = '\u2557'; // ╗
	char e = '\u255A'; // ╚
	char f = '\u255D'; // ╝
	
	String[] liste = {"Boş...", "Grid 3X5", "Grid 5X9", "3 harf", "5 harf"};
	JComboBox comboListe = new JComboBox(liste);
	
	JLabel label = new JLabel("Boş...");
	
	JPanel panel = new JPanel();
	
	public BorderLayoutPastelRenkler()  {

		System.out.println(a);
		System.out.println(b);
		System.out.println(c);
		System.out.println(d);
		System.out.println(e);
		System.out.println(f);
		
		setLayout(new BorderLayout());
		
		comboListe.setSelectedIndex(0);
		comboListe.addActionListener(this);
		
		label.setVerticalAlignment(JLabel.CENTER);
		label.setHorizontalAlignment(JLabel.CENTER);
		label.setFont(new Font("Verdana", Font.BOLD, 59));
		label.setPreferredSize(new Dimension(150, 150));
		
		add(comboListe, BorderLayout.NORTH);
		add(label, BorderLayout.SOUTH);
		add(panel, BorderLayout.CENTER);
		
		setSize(1024, 768);
		setTitle("Pastel renkler ve paneller. 052");
		setLocationRelativeTo(null);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setVisible(true);
		
		
	}

	public void actionPerformed(ActionEvent e) {
		
		if(e.getSource() == comboListe) {
			
			JComboBox cb = (JComboBox) e.getSource();
			String madde = (String) cb.getSelectedItem();
			
			switch (madde) {
				
			case "Grid 3X5" : 
				
				label.setText("GridLayout 3 x 5 seçildi...");
				
				panel.removeAll();
				panel.setLayout(new GridLayout(3,5));
				
				for(int i=1; i<16 ; i++) {
					panel.add(paselRenkliPanel(i));
				}
				
				add(panel);
				
				revalidate();
				
			break;
			
			case "Grid 5X9" : 
				
				label.setText("GridLayout 5 x 9 seçildi...");
				
				panel.removeAll();
				
				panel.setLayout(new GridLayout(5,9));
				
				for(int i=1; i<46 ; i++) {
					panel.add(paselRenkliPanel(i));
				}
				
				add(panel);
				
				revalidate();
				
				
			break;
			
			case "3 harf" : 
				
				label.setText("3 harf seçildi...");
				
				panel.removeAll();
				
				panel.setLayout(new GridLayout(1,1));
				
				panel.add(paselRenkliPanel(1));
				
				add(panel);
				
				revalidate();
				
				
			break;
			
			case "5 harf" : 
	
							
				label.setText("5 harf seçildi...");
					
				panel.removeAll();
				
				panel.setLayout(new GridLayout(1,1));
				
				panel.add(paselRenkliPanel(1));
				
				add(panel);
				
				revalidate();
				
					
				break;
							
			default : label.setText("Olmayan bi'madde seçildi...");
			
			}
		}
		
	}
	
	public static JPanel paselRenkliPanel(int sayi) {
		
		Random r = new Random();
		
		Color[] renkler = new Color[20];
		
		renkler[0] = new Color(242, 182, 128); 
		renkler[1] = new Color(217, 206, 197);
		renkler[2] = new Color(255, 212, 218);
		renkler[3] = new Color(236, 255, 195);
		renkler[4] = new Color(164, 242, 255);
		renkler[5] = new Color(206, 232, 205);
		renkler[6] = new Color(180, 200, 230);
		renkler[7] = new Color(240, 219, 178);
		renkler[8] = new Color(169, 217, 217);
		renkler[9] = new Color(248, 200, 255); 
		renkler[10] = new Color(170, 179, 191);
		renkler[11] = new Color(242, 212, 194);
		renkler[12] = new Color(191, 189, 186);
		renkler[13] = new Color(186, 242, 160);
		renkler[14] = new Color(242, 206, 230);
		renkler[15] = new Color(226, 200, 227);
		renkler[16] = new Color(232, 255, 230);
		renkler[17] = new Color(232, 225, 255);
		renkler[18] = new Color(207, 180, 221);
		renkler[19] = new Color(0, 59, 6);  // yesil, label rengi olarak kullandik.
		
		JPanel panel = new JPanel();
		panel.setLayout(new GridLayout());
		panel.setBackground(renkler[r.nextInt(19)]); // 18 e kadar olan renkler[] kullanilir
		
		JLabel label = new JLabel();
		label.setText(""+sayi);
		label.setForeground(renkler[19]); // yesil renk
		label.setVerticalAlignment(JLabel.CENTER);
		label.setHorizontalAlignment(JLabel.CENTER);
		label.setFont(new Font("Verdana", Font.BOLD, 72));
		label.setPreferredSize(new Dimension(150, 150));
	//	label.setBounds(10,10,100,50);
		
		panel.add(label);
		
		return panel;
	}

}
