Na pressa foi o que deu para conseguir. Este c�digo pode ser melhorado (e muito) mas espero que ajude.
 
import javax.swing.*;
import java.awt.*;
import java.awt.image.*;
import java.awt.event.*;
 
class Program0 extends JFrame {
   Image image_;
   int scale_ = 1;
   String descr_;
 
   Program0(String arg, int scale, String descr) {
       image_ = getImage(arg);
       scale_ = scale;
       descr_ = descr;
  setTitle("Program0");
  setContentPane(createLayout());
  setSize(300, 200);
  setVisible(true);
  addWindowListener(new WindowAdapter() {
   public void windowClosing(WindowEvent e) {
    dispose();
   }
  });
 } 
 
 Program0(Image image, int scale, String descr) {
  image_ = image;
  scale_ = scale;
  descr_ = descr;
  setTitle("Program0");
  setContentPane(createLayout());
  setSize(300, 200);
  setVisible(true);
  addWindowListener(new WindowAdapter() {
   public void windowClosing(WindowEvent e) {
    dispose();
   }
  });
 } 
 
 Image getImage(String imagePath) {
  Image image = getToolkit().getImage(imagePath);
  MediaTracker m = new MediaTracker(this);
  m.addImage(image, 0);
  try {
   m.waitForAll();
  } catch (Exception e) {
   e.printStackTrace();
  }
  return image;
 } 
  
 public JPanel createLayout() {
  JPanel contentPane = new JPanel();
  contentPane.setLayout(new BorderLayout());
  contentPane.add(new ClickImage(image_, scale_, descr_));
  return contentPane;
 }
 
 public static void main(String args[]) {
  if (args[0] == null) {
   error("Wrong number of arguments");
  } 
  new Program0(args[0], 1, "");
 }
 
 static void error(String message) {
  System.err.println(message);
  System.exit(-1);
 } 
}
 
class ClickImage extends Canvas implements MouseListener {
 Image image_;
 Image scaledImage;
 int scale_;
 String descr_;
 
 ClickImage(Image image, int scale, String descr) {
  image_ = image;
  scale_ = scale;
  descr_ = descr;
  addMouseListener(this);
 }
 
 public void paint(Graphics g) {
     int w = image_.getWidth(this);
        int h = image_.getHeight(this);
        if (w >= 0 || h >= 0) {
            if (scaledImage == null) {
                scaledImage = image_.getScaledInstance(w*scale_, h*scale_,
                    Image.SCALE_SMOOTH);
            }
        }
        if (scaledImage != null) {
            g.drawImage(scaledImage, 0, 0, this);
        }
        int w1 = scaledImage.getWidth(this);
        int h1 = scaledImage.getHeight(this);
        g.drawString(descr_, ((w1/2) - descr_.length()), h1+20);
 }
 
 public void mouseClicked(MouseEvent e) {
  new Program0(scaledImage, 2, "Globo");
 } 
 
 public void mousePressed(MouseEvent e) {}
 public void mouseReleased(MouseEvent e){}
 public void mouseEntered(MouseEvent e) {}
 public void mouseExited(MouseEvent e)  {}
 
// Rafael de Castro Forte 

Responder a