2012-12-15 36 views
2

我在我的swing應用程序中創建了一個FileChooser。當我點擊打開時,打開的對話框顯示框架頂部的默認圖像(Java),而不是我爲我的JFrame設置的自定義圖像。FileChooser.showOpenDialog顯示框架頂部的默認java圖標

Sample Code: 

     JFileChooser filec=new JFileChooser(); 
     int fileval=filec.showOpenDialog(myjframe); 

我發現有些時候它工作正常fine.please幫助我。

enter image description here

+0

引用是不是你接受了這個問題的答案* *時間? –

回答

3

可以在JFileChooser的父JFrame將在對話框中設置反映在圖像:

Image image = ImageIO.read(getClass().getResource("MyImage.png")); 
myjframe.setIconImage(image); 
3

這似乎與此SSCCE可靠地在這裏工作。此代碼是否可靠地在您所在的位置工作?

File Chooser with Icon

import java.awt.*; 
import java.awt.image.BufferedImage; 
import javax.swing.*; 

public class FileChooserIcon { 

    public static void main(String[] args) { 
     Runnable r = new Runnable() { 

      @Override 
      public void run() { 
       Image image = 
        new BufferedImage(32,32,BufferedImage.TYPE_INT_RGB); 

       JFrame f = new JFrame("Demo"); 
       f.setIconImage(image); 
       f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 
       // See http://stackoverflow.com/a/7143398/418556 for demo. 
       f.setLocationByPlatform(true); 

       f.pack(); 
       f.setSize(600,400); 
       f.setVisible(true); 

       JFileChooser chooser = new JFileChooser(); 
       chooser.showOpenDialog(f); 
      } 
     }; 
     SwingUtilities.invokeLater(r); 
    } 
} 
1

的JFrame F =新的JFrame( 「編輯配置文件」);

//使用前兩種方式得到錯誤:非靜態方法的getClass()不能從靜態上下文

//(1) Image image = ImageIO.read(getClass().getResource("images/ctx.Icon")); 
//f.setIconImage(image); 

//(2) f.setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("images/ctx.PNG"))); 
//(3) Use third way. It works for me 
f.setIconImage(new ImageIcon("images/ctx.PNG").getImage());