# Change UI theme

**URL:** <https://forum.inductiveautomation.com/t/change-ui-theme/12871>\
**Category:** Ignition\
**Created:** [March 30, 2017, 8:56am UTC](https://forum.inductiveautomation.com/t/change-ui-theme/12871 "2017-03-30T08:56:25Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![csanz](https://avatars.discourse-cdn.com/v4/letter/c/ac91a4/32.png) [@csanz](https://forum.inductiveautomation.com/u/csanz)\
**Post date:** [March 30, 2017, 8:56am UTC](https://forum.inductiveautomation.com/t/change-ui-theme/12871/1 "2017-03-30T08:56:25Z")

</div>

I have found the UI borders feels very old and small, particularly when using touch devices, so I have tried to change the java UI theme.  
I have added the following piece of code into the client event script:

```auto
from javax.swing import UIManager
theme = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel"
UIManager.setLookAndFeel(theme)
```

And it partially works, I have been able to change the windows borders as you can see in the screenshots attached  
New theme:  
[attachment=0]new.PNG[/attachment]

Ignitions theme:  
[attachment=1]old.PNG[/attachment]

However after setting the new theme I am unable to open any window, it throws me an error related with the deserialization. This is the error message:

[code]com.inductiveautomation.ignition.common.xmlserialization.SerializationException: Error deserializing element “\<c”  
at com.inductiveautomation.ignition.common.xmlserialization.deserialization.XMLDeserializer$ParseContext.createException(XMLDeserializer.java:952)  
at com.inductiveautomation.ignition.common.xmlserialization.deserialization.XMLDeserializer$ParseContext.onElementStart(XMLDeserializer.java:833)  
at com.inductiveautomation.ignition.common.xmlserialization.deserialization.BinaryParser.readElement(BinaryParser.java:151)  
at com.inductiveautomation.ignition.common.xmlserialization.deserialization.BinaryParser.readElement(BinaryParser.java:157)  
at com.inductiveautomation.ignition.common.xmlserialization.deserialization.BinaryParser.readElement(BinaryParser.java:157)  
at com.inductiveautomation.ignition.common.xmlserialization.deserialization.BinaryParser.readElement(BinaryParser.java:157)  
at com.inductiveautomation.ignition.common.xmlserialization.deserialization.BinaryParser.readElement(BinaryParser.java:157)  
at com.inductiveautomation.ignition.common.xmlserialization.deserialization.BinaryParser.readElement(BinaryParser.java:157)  
at com.inductiveautomation.ignition.common.xmlserialization.deserialization.BinaryParser.readElement(BinaryParser.java:157)  
at com.inductiveautomation.ignition.common.xmlserialization.deserialization.BinaryParser.readElement(BinaryParser.java:157)  
at com.inductiveautomation.ignition.common.xmlserialization.deserialization.BinaryParser.readElement(BinaryParser.java:157)  
at com.inductiveautomation.ignition.common.xmlserialization.deserialization.BinaryParser.readElement(BinaryParser.java:157)  
at com.inductiveautomation.ignition.common.xmlserialization.deserialization.BinaryParser.readElement(BinaryParser.java:157)  
at com.inductiveautomation.ignition.common.xmlserialization.deserialization.BinaryParser.readElement(BinaryParser.java:157)  
at com.inductiveautomation.ignition.common.xmlserialization.deserialization.BinaryParser.readElement(BinaryParser.java:157)  
at com.inductiveautomation.ignition.common.xmlserialization.deserialization.BinaryParser.parse(BinaryParser.java:51)  
at com.inductiveautomation.ignition.common.xmlserialization.deserialization.XMLDeserializer.deserializeBinary(XMLDeserializer.java:339)  
at com.inductiveautomation.ignition.common.xmlserialization.deserialization.XMLDeserializer.deserialize(XMLDeserializer.java:259)  
at com.inductiveautomation.factorypmi.application.model.WindowCache.\_deserializeWindow(WindowCache.java:271)  
at com.inductiveautomation.factorypmi.application.model.WindowCache.\_loadWindow(WindowCache.java:213)  
at com.inductiveautomation.factorypmi.application.model.WindowCache.openWindow(WindowCache.java:422)  
at com.inductiveautomation.factorypmi.application.VisionDesktop$RuntimeWindowOpener.openWindow(VisionDesktop.java:460)  
at com.inductiveautomation.factorypmi.application.VisionDesktop.openWindow(VisionDesktop.java:193)  
at com.inductiveautomation.factorypmi.application.script.builtin.NavUtilities$5.run(NavUtilities.java:424)  
at com.inductiveautomation.factorypmi.application.script.builtin.WindowUtilities.doGUIAction(WindowUtilities.java:815)  
at com.inductiveautomation.factorypmi.application.script.builtin.NavUtilities.openWindowImpl(NavUtilities.java:362)  
at com.inductiveautomation.factorypmi.application.script.builtin.NavUtilities.openWindow(NavUtilities.java:352)  
at com.inductiveautomation.factorypmi.application.script.builtin.NavUtilitiesDispatcher.openWindow(NavUtilitiesDispatcher.java:134)  
at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source)  
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)  
at java.lang.reflect.Method.invoke(Unknown Source)  
at org.python.core.PyReflectedFunction. **call** (PyReflectedFunction.java:186)  
at com.inductiveautomation.ignition.common.script.ScriptManager$ReflectedInstanceFunction. **call** (ScriptManager.java:430)  
at org.python.core.PyObject. **call** (PyObject.java:387)  
at org.python.core.PyObject. **call** (PyObject.java:391)  
at org.python.pycode.\_pyx5.loadMenuWindows$14(module:shared.sepp.st\_controlVentanas:302)  
at org.python.pycode.\_pyx5.call\_function(module:shared.sepp.st\_controlVentanas)  
at org.python.core.PyTableCode.call(PyTableCode.java:165)  
at org.python.core.PyBaseCode.call(PyBaseCode.java:120)  
at org.python.core.PyFunction. **call** (PyFunction.java:307)  
at org.python.pycode._pyx338.runAsync$1(event:mousePressed:18)  
at org.python.pycode.pyx338.call\_function(event:mousePressed)  
at org.python.core.PyTableCode.call(PyTableCode.java:165)  
at org.python.core.PyBaseCode.call(PyBaseCode.java:301)  
at org.python.core.PyFunction.function\_\_\_call_(PyFunction.java:376)  
at org.python.core.PyFunction. **call** (PyFunction.java:371)  
at org.python.core.PyFunction. **call** (PyFunction.java:361)  
at org.python.core.PyFunction. **call** (PyFunction.java:356)  
at com.inductiveautomation.ignition.common.script.ScriptManager.runFunction(ScriptManager.java:639)  
at com.inductiveautomation.factorypmi.application.script.builtin.ClientSystemUtilities$2.run(ClientSystemUtilities.java:350)  
at java.awt.event.InvocationEvent.dispatch(Unknown Source)  
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)  
at java.awt.EventQueue.access$500(Unknown Source)  
at java.awt.EventQueue$3.run(Unknown Source)  
at java.awt.EventQueue$3.run(Unknown Source)  
at java.security.AccessController.doPrivileged(Native Method)  
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)  
at java.awt.EventQueue.dispatchEvent(Unknown Source)  
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)  
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)  
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)  
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)  
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)  
at java.awt.EventDispatchThread.run(Unknown Source)  
Caused by: java.lang.NullPointerException  
at com.incors.plaf.alloy.a.i.a(Unknown Source)  
at com.incors.plaf.alloy.df.a(Unknown Source)  
at com.incors.plaf.alloy.df.(Unknown Source)  
at com.inductiveautomation.ignition.client.util.gui.SegmentButtons$SegmentButtonBorder.(SegmentButtons.java:196)  
at com.inductiveautomation.ignition.client.util.gui.SegmentButtons$SegmentToggleButtonUI.installDefaults(SegmentButtons.java:188)  
at javax.swing.plaf.basic.BasicButtonUI.installUI(Unknown Source)  
at com.incors.plaf.alloy.AlloyToggleButtonUI.installUI(Unknown Source)  
at javax.swing.JComponent.setUI(Unknown Source)  
at javax.swing.AbstractButton.setUI(Unknown Source)  
at com.inductiveautomation.ignition.client.util.gui.SegmentButtons$SegmentToggleButton.updateUI(SegmentButtons.java:162)  
at javax.swing.AbstractButton.init(Unknown Source)  
at javax.swing.JToggleButton.(Unknown Source)  
at javax.swing.JToggleButton.(Unknown Source)  
at javax.swing.JToggleButton.(Unknown Source)  
at com.inductiveautomation.ignition.client.util.gui.SegmentButtons$SegmentToggleButton.(SegmentButtons.java:145)  
at com.inductiveautomation.ignition.client.util.gui.SegmentButtons.addSegment(SegmentButtons.java:53)  
at com.inductiveautomation.factorypmi.application.components.AlarmStatusTable$AlarmCharts$SimpleRangePicker.(AlarmStatusTable.java:1807)  
at com.inductiveautomation.factorypmi.application.components.AlarmStatusTable$AlarmCharts$TrendChart.(AlarmStatusTable.java:1325)  
at com.inductiveautomation.factorypmi.application.components.AlarmStatusTable$AlarmCharts.(AlarmStatusTable.java:1304)  
at com.inductiveautomation.factorypmi.application.components.AlarmStatusTable$FooterPanel$UtilityPanel.(AlarmStatusTable.java:2747)  
at com.inductiveautomation.factorypmi.application.components.AlarmStatusTable$FooterPanel.(AlarmStatusTable.java:2225)  
at com.inductiveautomation.factorypmi.application.components.AlarmStatusTable.initLayout(AlarmStatusTable.java:400)  
at com.inductiveautomation.factorypmi.application.components.AlarmStatusTable.(AlarmStatusTable.java:315)  
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)  
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)  
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)  
at java.lang.reflect.Constructor.newInstance(Unknown Source)  
at java.lang.Class.newInstance(Unknown Source)  
at com.inductiveautomation.factorypmi.application.xmlserialization.ComponentDeserializationHandler.startSubElement(ComponentDeserializationHandler.java:72)  
at com.inductiveautomation.ignition.common.xmlserialization.deserialization.XMLDeserializer$ParseContext.onElementStart(XMLDeserializer.java:830)  
… 62 more

Ignition v7.9.0 (b2016101208)  
Java: Oracle Corporation 1.8.0\_121  
[/code]

Have anyone tried to achieve this? Am I missing something?

Regards
