import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class BorderLayoutSehirler {

	public static JFrame frame;
	public static JPanel panelMerkez;
	
	public BorderLayoutSehirler() {
		frame = new JFrame("BorderLayout Sehirler | Java Blackboard [120]");
		
		BorderLayout borderLayout = new BorderLayout();
		borderLayout.setHgap(15);
		borderLayout.setVgap(15);
		
		frame.setLayout(borderLayout);
		
		JPanel panelKuzey = new JPanel();
		
		panelKuzey.setPreferredSize(new Dimension(100, 100));
		panelKuzey.setBackground(new Color(75, 191, 115));
		
		panelKuzey.add(baslikPaneli());
		
		JPanel panelGuney = new JPanel();
		panelGuney.setPreferredSize(new Dimension(50, 50));
		panelGuney.setBackground(new Color(175, 191, 115));
		
		JPanel panelDogu = new JPanel();
		panelDogu.setPreferredSize(new Dimension(250, 0));
		panelDogu.setBackground(new Color(217, 94, 50));
		
		JPanel panelBati = new JPanel();
		panelBati.setPreferredSize(new Dimension(190, 10));
		panelBati.setBackground(new Color(245, 222, 131));
		
		panelBati.add(butonPaneli());
		
		JLabel labelIstanbulX = new JLabel("Sehir Bilgileri");
		
		panelMerkez = new JPanel();
		panelMerkez.setLayout(new FlowLayout());
		panelMerkez.setBackground(new Color(242, 184, 75));
		
		panelMerkez.add(labelIstanbulX);
		
		frame.add(panelKuzey, BorderLayout.NORTH);
		frame.add(panelGuney, BorderLayout.SOUTH);
		frame.add(panelDogu, BorderLayout.EAST);
		frame.add(panelBati, BorderLayout.WEST);
		
		
		frame.add(panelMerkez, BorderLayout.CENTER);
		
		frame.setSize(1024, 768);
        frame.setLocationRelativeTo(null);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setResizable(true);
        frame.setVisible(true);
	}

	public static JPanel baslikPaneli() {
		
		int genislik = 700;
		
		JPanel panel = new JPanel();
		panel.setLayout(new FlowLayout());
		panel.setPreferredSize(new Dimension(genislik, 100));
		
		// Panelin arka plan rengini saydam yapalim.
	    panel.setOpaque(false);
       
		JLabel label = new JLabel();
		label.setFont(new Font("Helvetica", Font.BOLD, 50));
		label.setPreferredSize(new Dimension(genislik, 100));
		label.setText("Sehirler Info");
	
		// Yatay ve dikey hizalamayı ayarla
        label.setHorizontalAlignment(JLabel.CENTER);
        label.setVerticalAlignment(JLabel.CENTER);
		
		panel.add(label);
		
		return panel;
	}
	
	public static JPanel butonPaneli() {
		
		JPanel panel = new JPanel();
		panel.setLayout(new FlowLayout());
		panel.setPreferredSize(new Dimension(190, 500));
		panel.setOpaque(false); // Zemin rengini transparan yap.
		
		JButton butonIstanbul = new JButton("Istanbul");
		butonIstanbul.setSize(100, 25);
		
		JButton butonAfyon = new JButton("Afyonkarahisar");
		butonAfyon.setSize(100, 25);
		
		JButton butonAnkara = new JButton("Ankara");
		butonAnkara.setSize(100, 25);
		
		panel.add(butonIstanbul);
		panel.add(butonAfyon);
		panel.add(butonAnkara);
		
		butonIstanbul.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
            	
            	panelMerkez.removeAll();
            	
            	// JFrame'in arka plan rengini degistirmek istersek.
            //	Color bordoRGB = new Color(115, 23, 2);
            //	frame.getContentPane().setBackground(bordoRGB);
                
             // Merkez bölgesinin arka plan rengini mavi yap
            	Color maviRGB = new Color(48, 155, 222);
                panelMerkez.setBackground(maviRGB);
                
                panelMerkez.add(sehirIsmi("Istanbul"));
                panelMerkez.add(sehirPlakaKod("34", "(212) (216)"));
                panelMerkez.add(sehirNufus("15.907.951"));
                panelMerkez.add(sehirYuzolcumu("5,461 km²"));
                panelMerkez.add(sehirIlceSayisi("39"));
                
                panelMerkez.revalidate();  // Merkez Panel yeniden cagiriliyor.
            }
        });
		
		butonAfyon.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
            	
            	panelMerkez.removeAll();
            	
            	// JFrame'in arka plan rengini degistirmek istersek.
            	Color sariRGB = new Color(242, 190, 92);
            //	frame.getContentPane().setBackground(sariRGB);
                
             // Merkez bölgesinin arka plan rengini yesil yap
            	Color yesilRGB = new Color(48, 140, 88);
                panelMerkez.setBackground(yesilRGB);
                
                panelMerkez.add(sehirIsmi("Afyonkarahisar"));
                panelMerkez.add(sehirPlakaKod("03", "(272)"));
                panelMerkez.add(sehirNufus("747.555"));
                panelMerkez.add(sehirYuzolcumu("14.230,00 km²"));
                panelMerkez.add(sehirIlceSayisi("17"));
                
                panelMerkez.revalidate();
            }
        });
		
		butonAnkara.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
            	
            	panelMerkez.removeAll();
            	
            	// JFrame'in arka plan rengini degistirmek istersek.
            	Color sariRGB = new Color(242, 190, 92);
            //	frame.getContentPane().setBackground(sariRGB);
                
             // Merkez bölgesinin arka plan rengini Kirmizimsi yap
            	Color kirmizimsiRGB = new Color(242, 93, 7);
                panelMerkez.setBackground(kirmizimsiRGB);
                
                panelMerkez.add(sehirIsmi("Ankara"));
                panelMerkez.add(sehirPlakaKod("06", "(312)"));
                panelMerkez.add(sehirNufus("5.782.285"));
                panelMerkez.add(sehirYuzolcumu("25.706,00 km²"));
                panelMerkez.add(sehirIlceSayisi("25"));
                
                panelMerkez.revalidate();
            }
        });
		
		return panel;
	}
	
	public static JPanel sehirIsmi(String sehirAd) {
		
		JPanel panel = new JPanel();
		panel.setPreferredSize(new Dimension(540, 100));
		panel.setBackground(new Color(204, 234, 252));
		
	//	panel.setOpaque(false);
	       
		JLabel label = new JLabel();
		label.setFont(new Font("Helvetica", Font.BOLD, 70));
		label.setPreferredSize(new Dimension(540, 100));
		label.setText(sehirAd);
		
		// Yatay ve dikey hizalamayı ayarla
        label.setHorizontalAlignment(JLabel.CENTER);
        label.setVerticalAlignment(JLabel.CENTER);
		
		panel.add(label);
		
		
		return panel;
		
	}
	
	public static JPanel sehirPlakaKod(String plaka, String telefonKodu) {
		
		JPanel panel = new JPanel();
		panel.setPreferredSize(new Dimension(540, 100));
		panel.setBackground(new Color(221, 252, 204));
		
	//	panel.setOpaque(false);
	       
		JLabel label = new JLabel();
		label.setFont(new Font("Helvetica", Font.BOLD, 70));
		label.setPreferredSize(new Dimension(540, 100));
		label.setText(plaka + " - " + telefonKodu);
		
		// Yatay ve dikey hizalamayı ayarla
        label.setHorizontalAlignment(JLabel.CENTER);
        label.setVerticalAlignment(JLabel.CENTER);
		
		panel.add(label);
		
		
		return panel;
		
	}
	
	public static JPanel sehirNufus(String sehirPopulasyon) {
		
		JPanel panel = new JPanel();
		panel.setPreferredSize(new Dimension(540, 100));
		panel.setBackground(new Color(252, 232, 204));
		
	//	panel.setOpaque(false);
	       
		JLabel label = new JLabel();
		label.setFont(new Font("Helvetica", Font.BOLD, 90));
		label.setPreferredSize(new Dimension(540, 100));
		label.setText(sehirPopulasyon);
		
		// Yatay ve dikey hizalamayı ayarla
        label.setHorizontalAlignment(JLabel.CENTER);
        label.setVerticalAlignment(JLabel.CENTER);
		
		panel.add(label);
		
		
		return panel;
		
	}
	
	public static JPanel sehirYuzolcumu(String sehirAlan) {
		
		JPanel panel = new JPanel();
		panel.setPreferredSize(new Dimension(540, 100));
		panel.setBackground(new Color(252, 217, 252));
		
	//	panel.setOpaque(false);
	       
		JLabel label = new JLabel();
		label.setFont(new Font("Helvetica", Font.BOLD, 80));
		label.setPreferredSize(new Dimension(540, 100));
		label.setText(sehirAlan);
		
		// Yatay ve dikey hizalamayı ayarla
        label.setHorizontalAlignment(JLabel.CENTER);
        label.setVerticalAlignment(JLabel.CENTER);
		
		panel.add(label);
		
		
		return panel;
		
	}
	
	public static JPanel sehirIlceSayisi(String sehirIlce) {
		
		JPanel panel = new JPanel();
		panel.setPreferredSize(new Dimension(540, 100));
		panel.setBackground(new Color(253, 244, 231));
		
	//	panel.setOpaque(false);
	       
		JLabel label = new JLabel();
		label.setFont(new Font("Helvetica", Font.BOLD, 100));
		label.setPreferredSize(new Dimension(540, 100));
		label.setText(sehirIlce);
		
		// Yatay ve dikey hizalamayı ayarla
        label.setHorizontalAlignment(JLabel.CENTER);
        label.setVerticalAlignment(JLabel.CENTER);
		
		panel.add(label);
		
		
		return panel;
		
	}
	
	public static void main(String[] args) {
		
		new BorderLayoutSehirler();

	}

}
