import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;

public class PanelJPEGKayit {
	
	PanelJPEGKayit() {
       
    	JFrame frame = new JFrame("089 Panel JPEG Kayit.");
    	frame.setSize(400,400);
    	frame.setLayout(null);
        
    	JPanel panel = new JPanel();
        panel.setLayout(null);
        panel.setBackground(new Color(169, 121, 217));
        panel.setBounds(50,50,300,300);
        
        JLabel label = new JLabel("Bu bir JLabel'dir.");
        label.setHorizontalAlignment(JLabel.CENTER);
        label.setBounds(0,10,300,25);
        
        JTextArea textarea = new JTextArea();
        textarea.setBounds(25,50,230,150);
        
        JButton buton = new JButton("Sade buton");
        buton.setBounds(100,225,100,25);
        
        panel.add(label);
        panel.add(textarea);
        panel.add(buton);
        
        // JPopupMenü'yü oluşturuyoruz
        JPopupMenu popupMenu = new JPopupMenu();
        
        JMenuItem saveAsJpeg = new JMenuItem("Save as JPEG");
        popupMenu.add(saveAsJpeg);

        // JPopupMenü'yü panel nesnesine ekleyelim
        panel.setComponentPopupMenu(popupMenu);

        // "Save as JPEG" seçeneğine tıklama olayını yazalim
        saveAsJpeg.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                
            	// Panelin görüntüsünü alıyoruz
                BufferedImage image = new BufferedImage(panel.getWidth(), panel.getHeight(), BufferedImage.TYPE_INT_RGB);
            	
                panel.paint(image.getGraphics());

                // Görüntünün masaüstüne kaydedilmesi
                try {
                
                	ImageIO.write(image, "JPEG", new File(System.getProperty("user.home") + "/Desktop/panel.jpg"));
                	
                } catch (Exception ex) {
                    
                	ex.printStackTrace();
                
                }
            }
        });

        
        frame.add(panel);
        
        frame.setLocationRelativeTo(null);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setResizable(false);
        frame.setVisible(true);
        
        

    }
}

