javaswingjoptionpane

JOptionPane title bar icon


I'd like to replace the icon in a JOptionPane title bar (as it currently shows the default Java coffee logo).

I tried the following:

JOptionPane.showMessageDialog(null, "Some Text", "Login",
 JOptionPane.INFORMATION_MESSAGE, ImageCacheProvider
   .instance.getImageIcon("img/an image.png"));

It replaces the icon in the window but not the one in the title bar:

Screenshot title bar

Is there any approach to change the icon in the title bar or alternatively to hide the default Java icon without having to implement a JDialog class?

Thanks a bunch! Thomas


Solution

  • Use it like this:

    Icon icon = new ImageIcon("d:/temp/CheckBox.gif");  
    JOptionPane jp = new JOptionPane("Session Expired - Please Re Login"),   
      JOptionPane.INFORMATION_MESSAGE,   
      JOptionPane.DEFAULT_OPTION,   
      icon);  
    JDialog dialog = jp.createDialog(null, "Session Expired - Please Re Login");
    ((Frame)dialog.getParent()).setIconImage(((ImageIcon)icon).getImage());  
    dialog.setResizable(true);  
    dialog.setVisible(true);