-
Bug
-
Resolution: Won't Fix
-
P4
-
None
-
6
-
x86
-
windows_xp
Dialog and JDialog behave differently with respect to setting the icon used in the alt-tab listing on Windows XP. This may also be true of other icon usages and/or other platforms. For instance on WinXP, only the AWT Dialog appears in the task bar.
The included test demonstrates the problem. A Dialog and JDialog are setup identically. The icons are both set correctly in the title bars, however when you press alt-tab to switch between applications, you can see that the icon for the AWT Dialog is also the custom icon, but the JDialog's icon is still the default.
I believe this is limited to the case of dialogs with null owners - otherwise, the owning frames's icon is the only one in the alt-tab list.
This is a bug in new Mustang functionality - before Window.setIconImage() was added, there wasn't a way to set an icon directly on a (J)Dialog.
// Test showing that setIconImage() doesn't set the alt-tab icon for JDialog,
// yet does for Dialog
import java.awt.*;
import javax.swing.*;
import javax.imageio.*;
import java.io.*;
public class JDialogSetIconBug {
public static void main(String[] args) {
try {
Dialog dialog = new Dialog((Frame)null, "AWT Dialog");
JDialog jdialog = new JDialog((Frame)null, "JDialog");
Image icon = ImageIO.read(new File("64x64.gif"));
dialog.setBounds(10, 200, 100, 100);
dialog.setIconImage(icon);
jdialog.setBounds(200, 200, 100, 100);
jdialog.setIconImage(icon);
dialog.setVisible(true);
jdialog.setVisible(true);
}
catch (Exception e) {
e.printStackTrace();
}
}
}
The included test demonstrates the problem. A Dialog and JDialog are setup identically. The icons are both set correctly in the title bars, however when you press alt-tab to switch between applications, you can see that the icon for the AWT Dialog is also the custom icon, but the JDialog's icon is still the default.
I believe this is limited to the case of dialogs with null owners - otherwise, the owning frames's icon is the only one in the alt-tab list.
This is a bug in new Mustang functionality - before Window.setIconImage() was added, there wasn't a way to set an icon directly on a (J)Dialog.
// Test showing that setIconImage() doesn't set the alt-tab icon for JDialog,
// yet does for Dialog
import java.awt.*;
import javax.swing.*;
import javax.imageio.*;
import java.io.*;
public class JDialogSetIconBug {
public static void main(String[] args) {
try {
Dialog dialog = new Dialog((Frame)null, "AWT Dialog");
JDialog jdialog = new JDialog((Frame)null, "JDialog");
Image icon = ImageIO.read(new File("64x64.gif"));
dialog.setBounds(10, 200, 100, 100);
dialog.setIconImage(icon);
jdialog.setBounds(200, 200, 100, 100);
jdialog.setIconImage(icon);
dialog.setVisible(true);
jdialog.setVisible(true);
}
catch (Exception e) {
e.printStackTrace();
}
}
}
- relates to
-
JDK-6436437 JFrame.setIconImages() doesn't select optimal icon size when client-decorated
- Resolved
-
JDK-6425606 PIT: Child dialog inherits the wrong icon from the parent frame if the parent is LAF decorated
- Closed
-
JDK-7103098 JDialog is not shown in alt-tab list in Java (ubuntu)
- Closed
-
JDK-6339074 Improve icon support
- Resolved