import java.awt.Color;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class FrameOrtasiPanel {
	
	public static JPanel anaPanel = new JPanel();
	public static JPanel merkezPanel = new JPanel();
	
	int anaPanelGenislik; 
    int anaPanelYukseklik;
	
	public FrameOrtasiPanel() throws IOException {
		
		JFrame frame = new JFrame("Frame Merkezinde Panel Göster | Java Blackboard [148]");
		frame.setLayout(null);
		
		// ComponentAdapter ile frame boyutu değiştiğinde tetiklenecek olayları dinliyoruz
        frame.addComponentListener(new ComponentAdapter() {
            @Override
            public void componentResized(ComponentEvent e) {
                // Frame boyutu değiştikçe anaPanel'in boyutunu güncelleyelim
                anaPanel.setSize(frame.getSize());
                
                // Boyut değiştikten sonra değerleri alalim
                anaPanelGenislik = anaPanel.getWidth();
                anaPanelYukseklik = anaPanel.getHeight();

                // anaPanel'in boyutunu console'a yazdirmak için.
                System.out.println("Ana Panel Boyutu: " + anaPanelGenislik + " x " + anaPanelYukseklik);
                
                int x = anaPanelGenislik/2-(150);
        		int y = anaPanelYukseklik/2-(150+11);  // +11 OS X'teki frame baslik yüksekliginden dolayi :)
        		
        		merkezPanel.setBackground(new Color(232, 74, 74));
        		merkezPanel.setBounds(x, y, 300, 300);
        		
        		anaPanel.add(merkezPanel);
            }
        });
        
		anaPanel.setLayout(null);
		anaPanel.setBackground(new Color(233, 245, 219));
		
		frame.getContentPane().add(anaPanel);
		
		frame.setSize(960, 540); // 16:9
		frame.setLocationRelativeTo(null);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setResizable(true);
		frame.setVisible(true);
	    
	}
	
	public static void main(String[] args) throws IOException {
		
		new FrameOrtasiPanel();

	}

}
