FileChooser.showOpenDialog在框架顶部显示默认的java图标

时间:2012-12-15 14:54:52

标签: java swing jfilechooser

我在swing应用程序中创建了一个FileChooser。当我点击打开时,打开的对话框在框架顶部显示默认图像(java),而不是我为JFrame设置的自定义图像。

 Sample Code:

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

我发现有时它工作正常。请帮助我。

enter image description here

3 个答案:

答案 0 :(得分:3)

您可以在JFrame的父JFileChooser中设置图片,该图片将反映在对话框中:

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

答案 1 :(得分: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);
    }
}

答案 2 :(得分:1)

JFrame f = new 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());