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

import javax.swing.*;

/**
	
	Java Blackbourd YouTube kanali.
	
	Ders : 055
	
	BorderLayout ve GridLayout kullanimi
	Takvim görüntüsü düzenleme ve haftanin gunlerini ekleme
 	
*/

public class BorderLayoutHaftaGunlerAyTakvim extends JFrame implements ActionListener {

	String[] aylar = {"Boş...", "OCAK 2022 (7X7)", "ŞUBAT 2022 (7X7)", "MART 2022 (7X7)", "NİSAN 2022 (7X7)",
			"MAYIS 2022 (7X7)", "HAZİRAN 2022 (7X7)", "TEMMUZ 2022 (7X7)", "AĞUSTOS 2022 (7X7)", 
			"EYLÜL 2022 (7X7)", "EKİM 2022 (7X7)", "KASIM 2022 (7X7)", "ARALIK 2022 (7X7)"} ;
	
	JComboBox comboListe = new JComboBox(aylar);
	
	JLabel label = new JLabel("Boş...");
	
	JPanel panel = new JPanel();
	
	public BorderLayoutHaftaGunlerAyTakvim()  {

		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("2022 Takvimi hafta gunleriyle. Java Blackboard [ 055 ]");
		setLocationRelativeTo(null); // Ekran ortasina ortalar.
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setVisible(true);
		
		
	}

	public void actionPerformed(ActionEvent e) {
		
		
		
		if(e.getSource() == comboListe) {
			
			Random r = new Random();
			String kelime = "";
			
			JComboBox cb = (JComboBox) e.getSource();
			String madde = (String) cb.getSelectedItem();
			
			switch (madde) {
			
			case "OCAK 2022 (7X7)" : 
				
				label.setText("OCAK 2022");
				
				panel.removeAll();
				panel.setLayout(new GridLayout(7,7));
				
				for(int i=1; i<=49 ; i++) {
					panel.add(pastelRenkliPanel(i-7, 1, 31, 6));
				}
				
				add(panel);
				
				revalidate();
				
			break;
			
			case "ŞUBAT 2022 (7X7)" : 
				
				label.setText("ŞUBAT 2022");
				
				panel.removeAll();
				panel.setLayout(new GridLayout(7,7));
				
				for(int i=1; i<=49 ; i++) {
					panel.add(pastelRenkliPanel(i-7, 2, 28, 2));
				}
				
				add(panel);
				
				revalidate();
				
				revalidate();
				
				
			break;
			
			case "MART 2022 (7X7)" : 
				
				label.setText("MART 2022");
				
				panel.removeAll();
				panel.setLayout(new GridLayout(7,7));
				
				for(int i=1; i<=49 ; i++) {
					panel.add(pastelRenkliPanel(i-7, 3, 31, 2));
				}
				
				add(panel);
				
				revalidate();
				
				revalidate();
				
				
				
			break;
			
			case "NİSAN 2022 (7X7)" : 
				
				label.setText("NİSAN 2022");
				
				panel.removeAll();
				panel.setLayout(new GridLayout(7,7));
				
				for(int i=1; i<=49 ; i++) {
					panel.add(pastelRenkliPanel(i-7, 4, 30, 5));
				}
				
				add(panel);
				
				revalidate();
				
				revalidate();
				
				
					
				break;
							
			default : 
				
				label.setText("Olmayan bi'madde seçildi...");
			
				panel.removeAll();
				panel.setLayout(new GridLayout(6,7));
				
				for(int i=1; i<=42 ; i++) {
					panel.add(pastelRenkliPanel(i, -1, 11, 6));
				}
				
				add(panel);
				
				revalidate();
			
			}
		}
		
	}
	
	public JPanel pastelRenkliPanel(int sayi, int ay, int gunSayisi, int baslangic) {
		
		Random r = new Random();
		
		Color[] renkler = new Color[20];
		
		renkler[0] = new Color(242, 234, 228); 	// gun acik renk
		renkler[1] = new Color(217, 210, 204); 	// gun koyu renk
		renkler[2] = new Color(115, 108, 99);  	// gun yazi rengi
		renkler[3] = new Color(213, 229, 242);	// Ay acik renk
		renkler[4] = new Color(163, 186, 217);	// Ay koyu renk
		renkler[5] = new Color(34, 47, 64);		// Ay sayilar
		
		
		JPanel panel = new JPanel();
		panel.setLayout(new GridLayout());
		
		JLabel label = new JLabel();
		
		
		if (ay == 1) {
			
			if (sayi <= 0 ) {
				
				if (sayi == -6) {
					
					label.setText("PZT");
					label.setForeground(renkler[2]); 
					panel.setBackground(renkler[0]);
				}
				
				if (sayi == -5) {
					
					label.setText("SAL");
					label.setForeground(renkler[2]);
					panel.setBackground(renkler[1]);
				}
				
				if (sayi == -4) {
					
					label.setText("ÇRŞ");
					label.setForeground(renkler[2]); 
					panel.setBackground(renkler[0]);
					
				}
				
				if (sayi == -3) {
					
					label.setText("PRŞ");
					label.setForeground(renkler[2]);
					panel.setBackground(renkler[1]);
					
				}
				
				if (sayi == -2) {
					
					label.setText("CUM");
					label.setForeground(renkler[2]);
					panel.setBackground(renkler[0]);
				}
				if (sayi == -1) {
					
					label.setText("CMT");
					label.setForeground(renkler[2]); 
					panel.setBackground(renkler[1]);
				}
				if (sayi == 0) {
					
					panel.setBackground(renkler[0]);
					label.setText("PZR");
					label.setForeground(renkler[2]);
					
				}
				
				label.setVerticalAlignment(JLabel.CENTER);
				label.setHorizontalAlignment(JLabel.CENTER);
				label.setFont(new Font("Verdana", Font.PLAIN, 47));
				label.setPreferredSize(new Dimension(150, 150));
				
			} else {
				
				if (sayi < baslangic) {
					label.setText("");
				}
				
				if (sayi >= baslangic) {
					
					label.setText(""+(sayi-baslangic+1));
				}
				
				if (sayi >= baslangic+gunSayisi) {
					
					label.setText("");
				}
				
				label.setForeground(renkler[5]);
				
				if (sayi%2 == 0) {
					panel.setBackground(renkler[3]);
				} else {
					panel.setBackground(renkler[4]);
				}
				
				label.setVerticalAlignment(JLabel.CENTER);
				label.setHorizontalAlignment(JLabel.CENTER);
				label.setFont(new Font("Verdana", Font.BOLD, 51));
				label.setPreferredSize(new Dimension(150, 150));
				
			}
			
			
			
		}
		
		if (ay == 2) {
			
			if (sayi <= 0 ) {
				
				if (sayi == -6) {
					
					label.setText("PZT");
					label.setForeground(renkler[2]); 
					panel.setBackground(renkler[0]);
				}
				
				if (sayi == -5) {
					
					label.setText("SAL");
					label.setForeground(renkler[2]);
					panel.setBackground(renkler[1]);
				}
				
				if (sayi == -4) {
					
					label.setText("ÇRŞ");
					label.setForeground(renkler[2]); 
					panel.setBackground(renkler[0]);
					
				}
				
				if (sayi == -3) {
					
					label.setText("PRŞ");
					label.setForeground(renkler[2]);
					panel.setBackground(renkler[1]);
					
				}
				
				if (sayi == -2) {
					
					label.setText("CUM");
					label.setForeground(renkler[2]);
					panel.setBackground(renkler[0]);
				}
				if (sayi == -1) {
					
					label.setText("CMT");
					label.setForeground(renkler[2]); 
					panel.setBackground(renkler[1]);
				}
				if (sayi == 0) {
					
					panel.setBackground(renkler[0]);
					label.setText("PZR");
					label.setForeground(renkler[2]);
					
				}
				
				label.setVerticalAlignment(JLabel.CENTER);
				label.setHorizontalAlignment(JLabel.CENTER);
				label.setFont(new Font("Verdana", Font.PLAIN, 47));
				label.setPreferredSize(new Dimension(150, 150));
				
			} else {
				
				if (sayi < baslangic) {
					label.setText("");
				}
				
				if (sayi >= baslangic) {
					
					label.setText(""+(sayi-baslangic+1));
				}
				
				if (sayi >= baslangic+gunSayisi) {
					
					label.setText("");
				}
				
				label.setForeground(renkler[5]);
				
				if (sayi%2 == 0) {
					panel.setBackground(renkler[3]);
				} else {
					panel.setBackground(renkler[4]);
				}
				
				
				label.setVerticalAlignment(JLabel.CENTER);
				label.setHorizontalAlignment(JLabel.CENTER);
				label.setFont(new Font("Verdana", Font.BOLD, 51));
				label.setPreferredSize(new Dimension(150, 150));
				
			}
			
			
			
		}
		
		if (ay == 3) {
			
			if (sayi <= 0 ) {
				
				if (sayi == -6) {
					
					label.setText("PZT");
					label.setForeground(renkler[2]); 
					panel.setBackground(renkler[0]);
				}
				
				if (sayi == -5) {
					
					label.setText("SAL");
					label.setForeground(renkler[2]);
					panel.setBackground(renkler[1]);
				}
				
				if (sayi == -4) {
					
					label.setText("ÇRŞ");
					label.setForeground(renkler[2]); 
					panel.setBackground(renkler[0]);
					
				}
				
				if (sayi == -3) {
					
					label.setText("PRŞ");
					label.setForeground(renkler[2]);
					panel.setBackground(renkler[1]);
					
				}
				
				if (sayi == -2) {
					
					label.setText("CUM");
					label.setForeground(renkler[2]);
					panel.setBackground(renkler[0]);
				}
				if (sayi == -1) {
					
					label.setText("CMT");
					label.setForeground(renkler[2]); 
					panel.setBackground(renkler[1]);
				}
				if (sayi == 0) {
					
					panel.setBackground(renkler[0]);
					label.setText("PZR");
					label.setForeground(renkler[2]);
					
				}
				
				label.setVerticalAlignment(JLabel.CENTER);
				label.setHorizontalAlignment(JLabel.CENTER);
				label.setFont(new Font("Verdana", Font.PLAIN, 47));
				label.setPreferredSize(new Dimension(150, 150));
				
			} else {
				
				if (sayi < baslangic) {
					label.setText("");
				}
				
				if (sayi >= baslangic) {
					
					label.setText(""+(sayi-baslangic+1));
				}
				
				if (sayi >= baslangic+gunSayisi) {
					
					label.setText("");
				}
				
				label.setForeground(renkler[5]);
				
				if (sayi%2 == 0) {
					panel.setBackground(renkler[3]);
				} else {
					panel.setBackground(renkler[4]);
				}
				
				
				label.setVerticalAlignment(JLabel.CENTER);
				label.setHorizontalAlignment(JLabel.CENTER);
				label.setFont(new Font("Verdana", Font.BOLD, 51));
				label.setPreferredSize(new Dimension(150, 150));
				
			}
			
			
			
		}
		
		if (ay == 4) {
			
			if (sayi <= 0 ) {
				
				if (sayi == -6) {
					
					label.setText("PZT");
					label.setForeground(renkler[2]); 
					panel.setBackground(renkler[0]);
				}
				
				if (sayi == -5) {
					
					label.setText("SAL");
					label.setForeground(renkler[2]);
					panel.setBackground(renkler[1]);
				}
				
				if (sayi == -4) {
					
					label.setText("ÇRŞ");
					label.setForeground(renkler[2]); 
					panel.setBackground(renkler[0]);
					
				}
				
				if (sayi == -3) {
					
					label.setText("PRŞ");
					label.setForeground(renkler[2]);
					panel.setBackground(renkler[1]);
					
				}
				
				if (sayi == -2) {
					
					label.setText("CUM");
					label.setForeground(renkler[2]);
					panel.setBackground(renkler[0]);
				}
				if (sayi == -1) {
					
					label.setText("CMT");
					label.setForeground(renkler[2]); 
					panel.setBackground(renkler[1]);
				}
				if (sayi == 0) {
					
					panel.setBackground(renkler[0]);
					label.setText("PZR");
					label.setForeground(renkler[2]);
					
				}
				
				label.setVerticalAlignment(JLabel.CENTER);
				label.setHorizontalAlignment(JLabel.CENTER);
				label.setFont(new Font("Verdana", Font.PLAIN, 47));
				label.setPreferredSize(new Dimension(150, 150));
				
			} else {
				
				if (sayi < baslangic) {
					label.setText("");
				}
				
				if (sayi >= baslangic) {
					
					label.setText(""+(sayi-baslangic+1));
				}
				
				if (sayi >= baslangic+gunSayisi) {
					
					label.setText("");
				}
				
				label.setForeground(renkler[5]);
				
				if (sayi%2 == 0) {
					panel.setBackground(renkler[3]);
				} else {
					panel.setBackground(renkler[4]);
				}
				
				
				label.setVerticalAlignment(JLabel.CENTER);
				label.setHorizontalAlignment(JLabel.CENTER);
				label.setFont(new Font("Verdana", Font.BOLD, 51));
				label.setPreferredSize(new Dimension(150, 150));
				
			}
			
			
			
		}
		
		
		
		
		
		panel.add(label);
		
		return panel;
	}

}
