import javax.swing.*;
import java.awt.*;

public class FrameOlcusu {

    public static void main(String[] args) {
        
        JFrame frame = new JFrame("Frame ve İçerik Paneli Boyutları | Java Blackboard [126]");
        frame.setLayout(null);
        frame.setSize(1024, 550);

        JPanel icerikPaneli = new JPanel();
        icerikPaneli.setBackground(new Color(220, 220, 200)); // arka fon rengi
        icerikPaneli.setLayout(null); // Layout yöneticisi null olarak ayarlandı

        frame.setContentPane(icerikPaneli); // İçerik panelini frame'e ekle

        // Önce frame'i görünür yapalım
        frame.setVisible(true);
        
        // Ardından boyutları alabilirsiniz
        // İçerik paneli boyutu
         
        Dimension icerikPaneliBoyut = icerikPaneli.getSize();
        System.out.println("İçerik Paneli Boyutu: " + icerikPaneliBoyut);
        int icerikPaneliG = icerikPaneliBoyut.width;  // icerikPaneliGenislik
        int icerikPaneliY = icerikPaneliBoyut.height; // icerikPaneliYukseklik
        System.out.println("--------" );
        System.out.println("Genişlik: " + icerikPaneliG);
        System.out.println("Yükseklik: " + icerikPaneliY);
        System.out.println("--------" );

        // Frame boyutu
        Dimension frameSize = frame.getSize();
        System.out.println("Frame Boyutu: " + frameSize);
        int frameSizeG = frameSize.width;  // frameSizeGenislik
        int frameSizeY = frameSize.height; // frameSizeYukseklik
        System.out.println("--------" );
        System.out.println("Genişlik: " + frameSizeG);
        System.out.println("Yükseklik: " + frameSizeY);
        System.out.println("--------" );

        // Başlık çubuğu yüksekliğini içeren kenar boşlukları alın
        Insets insets = frame.getInsets();

        // Başlık çubuğu yüksekliğini alın
        int baslikCubuguY = insets.top;

        System.out.println("Başlık Çubuğu Yüksekliği: " + baslikCubuguY + " piksel");
        
        icerikPaneli.add(boyutBilgisi(0, "Frame Boyutu", frameSizeG, frameSizeY));
        icerikPaneli.add(boyutBilgisi(1, "Başlık Çubuğu Yüksekligi", 0, baslikCubuguY));
        icerikPaneli.add(boyutBilgisi(2, "İçerik Paneli Boyutu", icerikPaneliG, icerikPaneliY));

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setResizable(false);
        frame.setLocationRelativeTo(null);
        
        frame.setVisible(false);
        frame.setVisible(true);
    }
    
    public static JLabel boyutBilgisi(int index, String boyutIsmi, int genislik, int yukseklik) {
    	
    	Font fontSize = new Font("Ubuntu", Font.BOLD, 45);
    	
    	JLabel label = new JLabel(boyutIsmi + " : " + genislik + " x " + yukseklik + " px");
    	label.setFont(fontSize);
    	label.setBounds(50, 100+(index*100), 1000, 80);
    	
    	return label;
    }
}
