JMRI® is...
By the community of
JMRI tools for working with your layout:
Layout Automation
Use JMRI to automate parts of your layout and operations:
Supported hardware
JMRI supports a wide range of devices, DCC systems, command stations, networks, and protocols.
JMRI Setup and Installation
JMRI environments...

JMRI Help:

Contents Index
Glossary FAQ

Donate to

JMRI: Icons in (Control) Panel Editor

Select an Icon to use

To select the icon, click the "Change Icon..." button to pop an icon editor panel.
Screen shot of panel editor
The current icon is shown at the top. To change it, use the tree in the bottom of the window to select a new one, then click on the icon at the top of the icon editor panel to load the selected icon. This is a general mechanism: Any icon on an icon editor window can be replaced by selecting the desired new one and clicking on the icon to be replaced.

Available Icons

The JMRI library contains lots of user contributed icons for representing CTC panels, LEDs, etc. You can browse through them with the tree in the bottom of the editor frame. Perhaps the best way to see what each looks like is to select it in the tree, then click on the icon next to the "Add icon" button. That will load it.

You can also create your own icons and use them by selecting from the "file" section.

For little bits of track, e.g. to connect turnouts, you might want

 resources -> icons -> small schematics ->tracksegments
then block.gif, etc.

We do need to do a better job of organizing the available icons!

Manipulating Icons

To move an icon around on the panel, you "meta-drag" it. On a Mac, that's "hold the cmd key and drag with the cursor"; on Windows it might be the Windows or Control key. Or it might be a right-drag. Sorry, I don't have a Windows machine here to figure it out.

There's also a pop-up menu (ctrl-click on a Mac) that will provide various ways to manipulate the icon. It will let you rotate the icon so that it points in whatever direction you want. Text labels can have their font, size and color changed. You can also remove icons from the panel with the popup menu.

Memory Icons

Memory objects are meant for scripting control; the first implementation is a MemoryIcon that lets you put a multi-state icon on the screen.

MemoryIcon objects work two ways: If a series of icons is defined in the file, the memory contents will be translated via this table (this was the original behavior). If there aren't any icons defined, the memory contents is displayed directly, as a string if it's a String and as a NamedIcon if it's a NamedIcon.

See xml/samples/MemoryIconExample.xml for info on how to set this up.

Reporter Icons

reporter panel The first implementation of Reporter is Digitrax transponding. By adding the appropriate elements to your Panel files, you can show decoder ID information on your Panels.

A Reporter's value can be displayed on a Panel via an icon. To do this:

See xml/samples/ReporterIconExample.xml for info on how to set this code up by hand.

It's actually not as hard as it sounds.