import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Random;

public class ResimdenBesliRenkAl {

    public static JLabel labelImage;
    public static BufferedImage image;

    public ResimdenBesliRenkAl() {
    	
    	JFrame frame = new JFrame("Resimden Beşli Renk Al | Java Blackboard [146]");
    	frame.setLayout(null);
         
        frame.add(resimPaneli());
        
        frame.setSize(940, 482);
    	frame.setLocationRelativeTo(null);
    	frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	frame.setResizable(false);
    	frame.setVisible(true);
    }
    
    public static JPanel resimPaneli() {
    	
    	JPanel panel = new JPanel();
    	panel.setBackground(new Color(200, 200, 200));
    	panel.setLayout(null);
    	panel.setBounds(50, 50, 840, 360);
    	
    	ButtonGroup group = new ButtonGroup();
    	
    	int renkGenislik = 66; // 190;
    	int renkYukseklik = 66;
    	
        int farkX = renkGenislik;
        int farkY = renkYukseklik + 6;
        
        int x = 645;
        int y = 3;
        
        JPanel panel1 = new JPanel();
        panel1.setLayout(null);
    	panel1.setBackground(new Color(225, 225, 225));
    	panel1.setBounds(x, y, 190, renkYukseklik);
        
    	JPanel panelRenk1 = new JPanel();
    	panelRenk1.setLayout(null);
    	panelRenk1.setBackground(new Color(0, 0, 0));
    	panelRenk1.setBounds(0, 0, renkGenislik, renkYukseklik);
    	
    	JRadioButton rbRenk1 = new JRadioButton("");
    	rbRenk1.setBounds(65, 16, 30, 30);
    	
    	JTextField fieldRGB1 = new JTextField("R, G, B");
    	fieldRGB1.setBounds(85, 5, 100, 25);
        
        JTextField fieldWebKod1 = new JTextField("#000000");
        fieldWebKod1.setBounds(85, 35, 100, 25);
        
        panel1.add(panelRenk1);
        panel1.add(rbRenk1);
        panel1.add(fieldRGB1);
        panel1.add(fieldWebKod1);
    	
    	y = y + farkY;
    	
    	JPanel panel2 = new JPanel();
    	panel2.setLayout(null);
    	panel2.setBackground(new Color(225, 225, 225));
    	panel2.setBounds(x, y, 190, renkYukseklik);
        
    	JPanel panelRenk2 = new JPanel();
    	panelRenk2.setLayout(null);
    	panelRenk2.setBackground(new Color(0, 0, 0));
    	panelRenk2.setBounds(0, 0, renkGenislik, renkYukseklik);
    	
    	JRadioButton rbRenk2 = new JRadioButton("");
    	rbRenk2.setBounds(65, 16, 30, 30);
    	
    	JTextField fieldRGB2 = new JTextField("R, G, B");
    	fieldRGB2.setBounds(85, 5, 100, 25);
        
        JTextField fieldWebKod2 = new JTextField("#000000");
        fieldWebKod2.setBounds(85, 35, 100, 25);
        
        panel2.add(panelRenk2);
        panel2.add(rbRenk2);
        panel2.add(fieldRGB2);
        panel2.add(fieldWebKod2);
    	
        y = y + farkY;
    	
    	JPanel panel3 = new JPanel();
    	panel3.setLayout(null);
    	panel3.setBackground(new Color(225, 225, 225));
    	panel3.setBounds(x, y, 190, renkYukseklik);
        
    	JPanel panelRenk3 = new JPanel();
    	panelRenk3.setLayout(null);
    	panelRenk3.setBackground(new Color(0, 0, 0));
    	panelRenk3.setBounds(0, 0, renkGenislik, renkYukseklik);
    	
    	JRadioButton rbRenk3 = new JRadioButton("");
    	rbRenk3.setBounds(65, 16, 30, 30);
    	
    	JTextField fieldRGB3 = new JTextField("R, G, B");
    	fieldRGB3.setBounds(85, 5, 100, 25);
        
        JTextField fieldWebKod3 = new JTextField("#000000");
        fieldWebKod3.setBounds(85, 35, 100, 25);
        
        panel3.add(panelRenk3);
        panel3.add(rbRenk3);
        panel3.add(fieldRGB3);
        panel3.add(fieldWebKod3);
    	
        y = y + farkY;
    	
    	JPanel panel4 = new JPanel();
    	panel4.setLayout(null);
    	panel4.setBackground(new Color(225, 225, 225));
    	panel4.setBounds(x, y, 190, renkYukseklik);
        
    	JPanel panelRenk4 = new JPanel();
    	panelRenk4.setLayout(null);
    	panelRenk4.setBackground(new Color(0, 0, 0));
    	panelRenk4.setBounds(0, 0, renkGenislik, renkYukseklik);
    	
    	JRadioButton rbRenk4 = new JRadioButton("");
    	rbRenk4.setBounds(65, 16, 30, 30);
    	
    	JTextField fieldRGB4 = new JTextField("R, G, B");
    	fieldRGB4.setBounds(85, 5, 100, 25);
        
        JTextField fieldWebKod4 = new JTextField("#000000");
        fieldWebKod4.setBounds(85, 35, 100, 25);
        
        panel4.add(panelRenk4);
        panel4.add(rbRenk4);
        panel4.add(fieldRGB4);
        panel4.add(fieldWebKod4);
        
        y = y + farkY;
    	
    	JPanel panel5 = new JPanel();
    	panel5.setLayout(null);
    	panel5.setBackground(new Color(225, 225, 225));
    	panel5.setBounds(x, y, 190, renkYukseklik);
        
    	JPanel panelRenk5 = new JPanel();
    	panelRenk5.setLayout(null);
    	panelRenk5.setBackground(new Color(0, 0, 0));
    	panelRenk5.setBounds(0, 0, renkGenislik, renkYukseklik);
    	
    	JRadioButton rbRenk5 = new JRadioButton("");
    	rbRenk5.setBounds(65, 16, 30, 30);
    	
    	JTextField fieldRGB5 = new JTextField("R, G, B");
    	fieldRGB5.setBounds(85, 5, 100, 25);
        
        JTextField fieldWebKod5 = new JTextField("#000000");
        fieldWebKod5.setBounds(85, 35, 100, 25);
        
        panel5.add(panelRenk5);
        panel5.add(rbRenk5);
        panel5.add(fieldRGB5);
        panel5.add(fieldWebKod5);
    	
    	group.add(rbRenk1);
    	group.add(rbRenk2);
    	group.add(rbRenk3);
    	group.add(rbRenk4);
    	group.add(rbRenk5);
    	
    	// Resmimizi tanimliyoruz.
        Random rastgele = new Random();
        
        int min = 0; // Minimum değer
        int max = 6; // Maksimum değer
        
        int rastgeleSayi = rastgele.nextInt((max - min) + 1) + min;
        
        try {
			image = ImageIO.read(new File("src/images/resim-"+rastgeleSayi+".jpg"));
		} catch (IOException e1) {
			e1.printStackTrace();
		}

        labelImage = new JLabel(new ImageIcon(image));
        labelImage.setBounds(0, 0, 640, 360);

        labelImage.addMouseListener(new MouseListener() {
            @Override
            public void mouseClicked(MouseEvent e) {
                
            	String stringRGB = "";
            	String stringWebRenk = "";
            	
            	int x = e.getX();
                int y = e.getY();
                
                Color c = null ;
                
                // Kliklenen nokta resmin sınırları içindemi kontrol ediyoruz.
                if (x >= 0 && y >= 0 && x < image.getWidth() && y < image.getHeight()) {
                    
                	c = new Color(image.getRGB(x, y));
                    
                } else {
                    System.out.println("Resim dışı seçim");
                }
                
                if (rbRenk1.isSelected()) {
                    fieldRGB1.setText(c.getRed() + ", " + c.getGreen() + ", " + c.getBlue());
                    fieldWebKod1.setText("#" + Integer.toHexString(c.getRGB()).substring(2));
                    panelRenk1.setBackground(new Color(c.getRed(), c.getGreen(), c.getBlue()));
                } else if (rbRenk2.isSelected()) {
                    fieldRGB2.setText(c.getRed() + ", " + c.getGreen() + ", " + c.getBlue());
                    fieldWebKod2.setText("#" + Integer.toHexString(c.getRGB()).substring(2));
                    panelRenk2.setBackground(new Color(c.getRed(), c.getGreen(), c.getBlue()));
                } else if (rbRenk3.isSelected()) {
                    fieldRGB3.setText(c.getRed() + ", " + c.getGreen() + ", " + c.getBlue());
                    fieldWebKod3.setText("#" + Integer.toHexString(c.getRGB()).substring(2));
                    panelRenk3.setBackground(new Color(c.getRed(), c.getGreen(), c.getBlue()));
                } else if (rbRenk4.isSelected()) {
                    fieldRGB4.setText(c.getRed() + ", " + c.getGreen() + ", " + c.getBlue());
                    fieldWebKod4.setText("#" + Integer.toHexString(c.getRGB()).substring(2));
                    panelRenk4.setBackground(new Color(c.getRed(), c.getGreen(), c.getBlue()));
                } else if (rbRenk5.isSelected()) {
                    fieldRGB5.setText(c.getRed() + ", " + c.getGreen() + ", " + c.getBlue());
                    fieldWebKod5.setText("#" + Integer.toHexString(c.getRGB()).substring(2));
                    panelRenk5.setBackground(new Color(c.getRed(), c.getGreen(), c.getBlue()));
                }
               
                
                
            }

            // MouseListener arabirimini kullandığınızda, 
            // arabirimin tüm metodlarını implement etmeniz gerekir.
			@Override
			public void mousePressed(MouseEvent e) {
				// TODO Auto-generated method stub
				
			}

			@Override
			public void mouseReleased(MouseEvent e) {
				// TODO Auto-generated method stub
				
			}

			@Override
			public void mouseEntered(MouseEvent e) {
				// TODO Auto-generated method stub
				
			}

			@Override
			public void mouseExited(MouseEvent e) {
				// TODO Auto-generated method stub
				
			}

            
        });

        panel.add(labelImage);
        
        panel.add(panel1);
        panel.add(panel2);
        panel.add(panel3);
        panel.add(panel4);
        panel.add(panel5);
               
        return panel;
    }

    public static void main(String[] args) {
        new ResimdenBesliRenkAl();
    }
}
