为什么Java AWT FileDialog setIconImage方法无法设置图标?

时间:2009-11-24 00:24:34

标签: java icons awt filedialog

我正在尝试使用Java AWT FileDialog,但我想用其他东西替换默认的Java Dialog图标。简而言之,代码看起来像这样:

Frame frame = new Frame();
Image image = ImageIO.read(new URL("file:/path/to/myfile.jpg"));
FileDialog fileDialog = new FileDialog(frame, "Save As", FileDialog.SAVE);

fileDialog.setIconImage(image);
fileDialog.setDirectory("/path/to/directory");
fileDialog.setFile("filename.txt");

fileDialog.setVisible(true);

我尝试了几种变体,包括读取图像的不同方法,打包FileDialog,打包Frame,设置Frame的图标等。但是,无论我尝试什么,FileDialog图标都不会改变。当我设置框架的图标并将框架设置为可见时,框架显示正确的图标,但它仍然不适用于FileDialog。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

作为AWT组件的FileDialog将更加依赖于本地平台。在Solaris的情况下,它可能会从启动你的应用程序本身的java可执行文件中获取图标。

你有没有理由不能使用JFileChooser?

答案 1 :(得分:1)

在所有平台上都可能无法实现。我想FileDialog以某种方式使用操作系统提供的文件管理器,如果不支持图标,那你运气不好。