我在我的 Swing 应用程序中创建了一个 FileChooser。当我单击打开时,打开对话框在框架顶部显示默认图像(java),而不是我为 JFrame 设置的自定义图像。
Sample Code:
JFileChooser filec=new JFileChooser();
int fileval=filec.showOpenDialog(myjframe);
我发现有时它工作正常。请帮助我。
我在我的 Swing 应用程序中创建了一个 FileChooser。当我单击打开时,打开对话框在框架顶部显示默认图像(java),而不是我为 JFrame 设置的自定义图像。
Sample Code:
JFileChooser filec=new JFileChooser();
int fileval=filec.showOpenDialog(myjframe);
我发现有时它工作正常。请帮助我。
它似乎在这里与这个 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);
}
}
您可以在将反映在对话框中的父级中设置图像JFrame
:JFileChooser
Image image = ImageIO.read(getClass().getResource("MyImage.png"));
myjframe.setIconImage(image);
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());