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 BorderLayoutPanel {

	public static JFrame frame;
	public static JPanel panelMerkez;
	
	public BorderLayoutPanel() {
		frame = new JFrame("BorderLayout JPanel | Java Blackboard [119]");
		
		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());
		
		panelMerkez = new JPanel();
		panelMerkez.setBackground(new Color(242, 184, 75));
		
		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("Java Blackboard [119]");
	
		// 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 butonMerkezMavi = new JButton("Merkez Mavi");
		butonMerkezMavi.setSize(100, 25);
		
		JButton butonMerkezYesil = new JButton("Merkez Yesil");
		butonMerkezMavi.setSize(100, 25);
		
		JButton butonMerkezAcilis = new JButton("Merkez Açılış");
		butonMerkezAcilis.setSize(100, 25);
		
		panel.add(butonMerkezMavi);
		panel.add(butonMerkezYesil);
		panel.add(butonMerkezAcilis);
		
		butonMerkezMavi.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
            	
            	// 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);
            }
        });
		
		butonMerkezYesil.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
            	
            	// 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);
            }
        });
		
		butonMerkezAcilis.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
            	
            	// JFrame'in arka plan rengini degistirmek istersek.
            	Color sariRGB = new Color(92, 92, 92);
            //	frame.getContentPane().setBackground(sariRGB);
                
             // Merkez bölgesinin arka plan rengini yesil yap
            	Color yesilRGB = new Color(242, 184, 75);
                panelMerkez.setBackground(yesilRGB);
            }
        });
		
		return panel;
	}
	
	public static void main(String[] args) {
		
		new BorderLayoutPanel();

	}

}
