我在swing应用程序中创建了一个FileChooser。当我点击打开时,打开的对话框在框架顶部显示默认图像(java),而不是我为JFrame设置的自定义图像。
Sample Code:
JFileChooser filec=new JFileChooser();
int fileval=filec.showOpenDialog(myjframe);
我发现有时它工作正常。请帮助我。
答案 0 :(得分:3)
您可以在JFrame
的父JFileChooser
中设置图片,该图片将反映在对话框中:
Image image = ImageIO.read(getClass().getResource("MyImage.png"));
myjframe.setIconImage(image);
答案 1 :(得分:3)
这个SSCCE似乎可靠地运作。这段代码可以在你所在的地方可靠地运行吗?
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());