Hola amigo HackmanC
 
he hecho lo que me has indicado pero cuando doy clic sobre el boton no pasa nada :(.     
Código Java:
Ver originalpackage imagen;
 
 
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.image.ImageObserver;
 
 
/**
 *
 * @author R2D2
 */
 
public class Ventana 
extends javax.
swing.
JFrame {  
    Image miImagen 
= Toolkit.
getDefaultToolkit().
getImage("/recursos/imagen.jpg");     boolean flag = true;
 
 
    public Ventana() {
        initComponents();
 
        prepareImage(miImagen,this);
 
        setLocationRelativeTo(null);
 
        setResizable(false);
 
         
    }
 
    
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {
 
        BotonMostarImagen 
= new javax.
swing.
JButton(); 
 
        BotonMostarImagen.setText("Boton");
        BotonMostarImagen.
addActionListener(new java.
awt.
event.
ActionListener() {            public void actionPerformed
(java.
awt.
event.
ActionEvent evt
) {                 BotonMostarImagenActionPerformed(evt);
            }
        });
 
        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(159, 159, 159)
                .addComponent(BotonMostarImagen)
                .
addContainerGap(180, 
Short.
MAX_VALUE))        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(134, 134, 134)
                .addComponent(BotonMostarImagen)
                .
addContainerGap(143, 
Short.
MAX_VALUE))        );
 
        pack();
    }// </editor-fold>//GEN-END:initComponents
 
    private void BotonMostarImagenActionPerformed
(java.
awt.
event.
ActionEvent evt
) {//GEN-FIRST:event_BotonMostarImagenActionPerformed  
        flag = !flag;
        repaint();
    }//GEN-LAST:event_BotonMostarImagenActionPerformed
 
    
    public static void main
(String args
[]) {             public void run() {
                new Ventana().setVisible(true);
            }
        });
    }
 
 
 
@Override
{
            if (flag) {
                g.drawImage(miImagen, 100, 100, getWidth(), getHeight(), this);
                
            }
 
}
 
@Override
public boolean imageUpdate
(Image miImagen, 
int infoflags, 
int x, 
int y, 
int width, 
int height
) {                repaint();
                return false;
            }
            return true;
        }
 
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.
swing.
JButton BotonMostarImagen
;     // End of variables declaration//GEN-END:variables
 
 
 
}
  
  
La verdad no se que me falta..  

. 
Mira por ejemplo en la linea 98 ; que parametros debo de pasarle.. ya que cuando le paso parametros... por ejemplo x ,y me saca error. :(