public ImageCanvas() {
      makeUI();
   }
   // UI 구성
   private BufferedImage makeUI() {
      this.setTitle("Image Canvas");
      this.setLayout(new BorderLayout());
      this.setSize(800, 800);
      this.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent we) {
            System.exit(0);
         }
      }
      );
    
     
     
     
          
      // 이미지 불러오기 버튼
    
      Panel pnl = new Panel();
   
      point = new TextField(10);
    
      setBackground (Color.gray);
     
      public BufferedImage imageToBufferedImage(Image im) {
          BufferedImage bi = new BufferedImage
             (im.getWidth(null),im.getHeight(null),BufferedImage.TYPE_INT_RGB);
          Graphics bg = bi.getGraphics();
          bg.drawImage(im, 0, 0, null);
          bg.dispose();
          return bi;
       }
    
      this.addMouseListener(new MouseAdapter()
      {
          public void mouseClicked(MouseEvent e){
              point.setText("X:"+e.getX() + "Y:" + e.getY());
              int ImgRGB = imageToBufferedImage(image).getRGB(e.getX(), e.getY());  // 이미지 좌표별 RGB값 추출
              int red = (ImgRGB & 0x00FF0000) >> 16;
              // 2^8으로 구성되어있는데, RGB로 구성있기 때문에 16만큼 쉬프트하면 RED
              // 8만큼 쉬프트 하면 G
              // 쉬프트를 하지 않으면 B 값을 추출할 수 있습니다.
              // [R=2^8] [B=2^8] [G]
              int green = (ImgRGB & 0x0000FF00) >> 8;
              int blue = (ImgRGB & 0x000000FF);
              point.setText("r: "+red+" ,g: "+green+" , b: "+blue);
          }

        private int getRGB(int x, int y) {
            // TODO Auto-generated method stub
            return 0;
        }
      }
      );