1:我在一个jframe中打开一个jdialog,在jdialog中显示一张本地磁盘的文件,当我把本地文件换掉以后(拷贝一张别的图片名称不变),再关掉jdialog重新在jframe中打开jdialog,显示的图片竟然没变这是为什么呢?非得把jframe关掉再重新打开jdialog才能显示。 
代码如下: 
package test; 
public class NewJFrame2 extends javax.swing.JFrame { 
     public NewJFrame2() { 
        initComponents(); 
    } 
     private void initComponents() {         jButton1 = new javax.swing.JButton();         setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);         jButton1.setText("jButton1"); 
        jButton1.setName("jButton1"); // NOI18N 
        jButton1.addActionListener(new java.awt.event.ActionListener() { 
            public void actionPerformed(java.awt.event.ActionEvent evt) { 
                jButton1ActionPerformed(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(125, 125, 125) 
                .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 132, javax.swing.GroupLayout.PREFERRED_SIZE) 
                .addContainerGap(143, Short.MAX_VALUE)) 
        ); 
        layout.setVerticalGroup( 
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
            .addGroup(layout.createSequentialGroup() 
                .addGap(124, 124, 124) 
                .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 53, javax.swing.GroupLayout.PREFERRED_SIZE) 
                .addContainerGap(123, Short.MAX_VALUE)) 
        );         pack(); 
    } 
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { 
      NewJDialog1 a= new NewJDialog1(this,true); 
      a.show(); 
    }          public static void main(String args[]) { 
        java.awt.EventQueue.invokeLater(new Runnable() { 
            public void run() { 
                new NewJFrame2().setVisible(true); 
            } 
        }); 
    }      private javax.swing.JButton jButton1; 
    
}   
package test; import java.awt.Graphics; 
import java.awt.Graphics2D; 
import java.awt.Image; 
import java.awt.Toolkit; 
import java.awt.image.BufferedImage; 
import javax.swing.ImageIcon; public class NewJDialog1 extends javax.swing.JDialog {      public NewJDialog1(java.awt.Frame parent, boolean modal) { 
        super(parent, modal); 
        initComponents(); 
        
                
        setVisible(true); 
        repaint(); 
    }      private void initComponents() {         setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);         javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); 
        getContentPane().setLayout(layout); 
        layout.setHorizontalGroup( 
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
            .addGap(0, 400, Short.MAX_VALUE) 
        ); 
        layout.setVerticalGroup( 
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
            .addGap(0, 300, Short.MAX_VALUE) 
        );         pack(); 
    } 
       public static void main(String args[]) { 
         NewJDialog1 dialog = new NewJDialog1(new javax.swing.JFrame(), true); 
     }       Image  img =  Toolkit.getDefaultToolkit().getImage("d:\\123.jpg"); 
     public   void   paint(Graphics   g) 
        { 
        super.paint(g); 
         g.drawImage(img ,     0,   0 ,   this); 
        } }