import java.awt.*;

import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
import javax.swing.*;

class MyGui extends JFrame {
  private BufferedImage img = null;
  
  public void createGUI() {
    setTitle("HelloGUI");
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    try { img = ImageIO.read(new File("./horse.jpg")); } 
    catch (IOException e) { System.out.println("failed to load image"); }
    if(img != null) setSize(img.getWidth(null), img.getHeight(null));
    setVisible(true);
  }
  @Override
  public void paint(Graphics g) {
    Graphics2D g2d = (Graphics2D) g; // cast to Graphics2D

    int oldRgb = img.getRGB(10, 100); // read a pixel
    int rgb = 0xFFFF0000; // Alpha-Red-Green-Blue
    img.setRGB(10, 100, rgb); // draw red pixel
    g.drawImage(img, 0, 0, null);
  }
}

public class MyBufferedImage {
  public static void main(String[] args) {

    javax.swing.SwingUtilities.invokeLater(new Runnable() {
      public void run() {
        MyGui myGUI = new MyGui();
        myGUI.createGUI();
      }
    });
  }
}
