# How to change icon appearing on the taskbar?

**URL:** <https://forum.inductiveautomation.com/t/how-to-change-icon-appearing-on-the-taskbar/8707>\
**Category:** Ignition\
**Created:** [July 10, 2014, 6:54pm UTC](https://forum.inductiveautomation.com/t/how-to-change-icon-appearing-on-the-taskbar/8707 "2014-07-10T18:54:10Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![bokechal](https://avatars.discourse-cdn.com/v4/letter/b/6f9a4e/32.png) [@bokechal](https://forum.inductiveautomation.com/u/bokechal)\
**Post date:** [July 10, 2014, 6:54pm UTC](https://forum.inductiveautomation.com/t/how-to-change-icon-appearing-on-the-taskbar/8707/1 "2014-07-10T18:54:10Z")

</div>

Is there any way to change how the icon appearing for each application?  
Attached picture shows I have 4 different applications developed with Ignition. I want it to be different so users won’t be frustrating looking for the right application to work with when they have multiple (Ignition) applications open at the same time.

Even though the launch icon has been set in Project Properties and the desktop icons are different, when launched, they’re all the same on taskbar.  
 ![](https://us1.discourse-cdn.com/inductiveautomation/original/2X/7/76a91189a949a704c0fab68b1c02d00d6a894c01.png)

---

<div class="post-metadata">

**Author:** ![adamaustin](https://avatars.discourse-cdn.com/v4/letter/a/5f8ce5/32.png) [@adamaustin](https://forum.inductiveautomation.com/u/adamaustin)\
**Post date:** [July 10, 2014, 7:23pm UTC](https://forum.inductiveautomation.com/t/how-to-change-icon-appearing-on-the-taskbar/8707/2 "2014-07-10T19:23:29Z")

</div>

This was fun, too. Try this: Add a hidden image component to your window and load your icon image into it. Then put this code in your window [internalFramedOpened](https://inductiveautomation.com/support/usermanuals/ignition/event_types.htm) event:

```auto
from java.awt import Frame

win = system.gui.getParentWindow(event)
img = win.rootContainer.getComponent("Image")
parent = win
while parent is not None:
   win = parent
   parent = win.getParent()
win.setIconImage(system.print.createImage(img))

```

---

<div class="post-metadata">

**Author:** ![bokechal](https://avatars.discourse-cdn.com/v4/letter/b/6f9a4e/32.png) [@bokechal](https://forum.inductiveautomation.com/u/bokechal)\
**Post date:** [July 10, 2014, 8:43pm UTC](https://forum.inductiveautomation.com/t/how-to-change-icon-appearing-on-the-taskbar/8707/3 "2014-07-10T20:43:15Z")

</div>

adamaustin,  
Thank you very for the response.

It seems to work but the image is not loaded (png image is uploaded into Image Management).

What I did was,

- add image component and set image path to the image
- uncheck the visible properties of the image
- append your code to the mentioned event

I print out ‘win’ before the setIconImage and it gives me this.

javax.swing.JFrame[frame0,-8,-8,1936x1176,invalid,layout=java.awt.BorderLayout,title=Configuration Editor Development - OPERATIONS,resizable,iconified,maximized,defaultCloseOperation=DO\_NOTHING\_ON\_CLOSE,rootPane=javax.swing.JRootPane[,8,31,1920x1137,invalid,layout=com.incors.plaf.alloy.bk,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]

I spot a couple of invalid words but not sure what it really means.  
Can you shed some light please?

---

<div class="post-metadata">

**Author:** ![adamaustin](https://avatars.discourse-cdn.com/v4/letter/a/5f8ce5/32.png) [@adamaustin](https://forum.inductiveautomation.com/u/adamaustin)\
**Post date:** [July 10, 2014, 9:32pm UTC](https://forum.inductiveautomation.com/t/how-to-change-icon-appearing-on-the-taskbar/8707/4 "2014-07-10T21:32:30Z")

</div>

I tried uploading my own PNG and it worked fine for me.  
I get similar when I print ‘win’ so I’m sorry it’s not working for you.

```auto
javax.swing.JFrame[frame0,-9,-9,1938x1028,invalid,layout=java.awt.BorderLayout,title=TestProject (STAGING),
resizable,maximized,defaultCloseOperation=DO_NOTHING_ON_CLOSE,
rootPane=javax.swing.JRootPane[,9,38,1920x981,invalid,layout=com.incors.plaf.alloy.bk,alignmentX=0.0,alignmentY=0.0,
border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]

```

---

<div class="post-metadata">

**Author:** ![thierryv](https://avatars.discourse-cdn.com/v4/letter/t/a8b319/32.png) [@thierryv](https://forum.inductiveautomation.com/u/thierryv)\
**Post date:** [September 9, 2014, 1:10pm UTC](https://forum.inductiveautomation.com/t/how-to-change-icon-appearing-on-the-taskbar/8707/5 "2014-09-09T13:10:40Z")

</div>

‘Support people’…  
Any suggestion how to fix this?  
The operators in our plant are also getting frustrated by this.

---

<div class="post-metadata">

**Author:** ![jpark](https://avatars.discourse-cdn.com/v4/letter/j/a88e57/32.png) [@jpark](https://forum.inductiveautomation.com/u/jpark)\
**Post date:** [September 9, 2014, 2:07pm UTC](https://forum.inductiveautomation.com/t/how-to-change-icon-appearing-on-the-taskbar/8707/6 "2014-09-09T14:07:34Z")

</div>

Try it this way.

[code]from javax.imageio import ImageIO  
from [java.net](http://java.net) import URL

url16 = URL(“[http://localhost:8088/main/system/images/Builtin/icons/16/add2.png](http://localhost:8088/main/system/images/Builtin/icons/16/add2.png)”)  
url32 = URL(“[http://localhost:8088/main/system/images/Builtin/icons/32/add2.png](http://localhost:8088/main/system/images/Builtin/icons/32/add2.png)”)  
url48 = URL(“[http://localhost:8088/main/system/images/Builtin/icons/48/add2.png](http://localhost:8088/main/system/images/Builtin/icons/48/add2.png)”)

icons = []  
icons.append(ImageIO.read(url16))  
icons.append(ImageIO.read(url32))  
icons.append(ImageIO.read(url48))

win = system.gui.getParentWindow(event)  
parent = win  
while parent is not None:  
win = parent  
parent = win.getParent()  
win.setIconImages(icons)[/code]

---

<div class="post-metadata">

**Author:** ![bokechal](https://avatars.discourse-cdn.com/v4/letter/b/6f9a4e/32.png) [@bokechal](https://forum.inductiveautomation.com/u/bokechal)\
**Post date:** [September 10, 2014, 9:32pm UTC](https://forum.inductiveautomation.com/t/how-to-change-icon-appearing-on-the-taskbar/8707/7 "2014-09-10T21:32:34Z")

</div>

script from Jae works.  
Thanks

---

<div class="post-metadata">

**Author:** ![bokechal](https://avatars.discourse-cdn.com/v4/letter/b/6f9a4e/32.png) [@bokechal](https://forum.inductiveautomation.com/u/bokechal)\
**Post date:** [September 17, 2014, 6:45pm UTC](https://forum.inductiveautomation.com/t/how-to-change-icon-appearing-on-the-taskbar/8707/8 "2014-09-17T18:45:29Z")

</div>

After upgraded to 7.7, the above script didn’t work. Jae helped me get around by providing this script to me.  
Forgot to mention that, put this script under visionWindowOpened event

from javax.imageio import ImageIO  
from [java.net](http://java.net) import URL  
from javax.swing import JFrame  
from org.python.core import Py

url16 = URL(“[http://localhost:8088/main/system/images/Builtin/icons/16/add2.png](http://localhost:8088/main/system/images/Builtin/icons/16/add2.png)”)  
url32 = URL(“[http://localhost:8088/main/system/images/Builtin/icons/32/add2.png](http://localhost:8088/main/system/images/Builtin/icons/32/add2.png)”)  
url48 = URL(“[http://localhost:8088/main/system/images/Builtin/icons/48/add2.png](http://localhost:8088/main/system/images/Builtin/icons/48/add2.png)”)

icons = []  
icons.append(ImageIO.read(url16))  
icons.append(ImageIO.read(url32))  
icons.append(ImageIO.read(url48))

win = system.gui.getParentWindow(event)  
while not isinstance(win,JFrame):  
win = win.getParent()  
javaWin = Py.tojava(win,JFrame)  
javaWin.setIconImages(icons)

---

<div class="post-metadata">

**Author:** ![Amarth](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/amarth/32/3313_2.png) [@Amarth](https://forum.inductiveautomation.com/u/Amarth)\
**Post date:** [November 16, 2016, 9:46am UTC](https://forum.inductiveautomation.com/t/how-to-change-icon-appearing-on-the-taskbar/8707/9 "2016-11-16T09:46:01Z")

</div>

Worked like a charm.  
Thank you for sharing.

Just retyping the code in a code snippet to keep the indentations.

```auto
from javax.imageio import ImageIO
from java.net import URL
from javax.swing import JFrame
from org.python.core import Py

url16 = URL("http://localhost:8088/main/system/images/Builtin/icons/16/add2.png")
url32 = URL("http://localhost:8088/main/system/images/Builtin/icons/32/add2.png")
url48 = URL("http://localhost:8088/main/system/images/Builtin/icons/48/add2.png")

icons = []
icons.append(ImageIO.read(url16))
icons.append(ImageIO.read(url32))
icons.append(ImageIO.read(url48))

win = system.gui.getParentWindow(event)
while not isinstance(win,JFrame):
	win = win.getParent()
javaWin = Py.tojava(win,JFrame)
javaWin.setIconImages(icons)
```
