📄 FrameOrtasiPanel.java .java dosyası
⬇️ İndir
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();
}
}