# Developing Custom Vision Component Modules with JavaFX

**URL:** <https://forum.inductiveautomation.com/t/developing-custom-vision-component-modules-with-javafx/76709>\
**Category:** Module Development\
**Tags:** vision\
**Created:** [July 21, 2023, 3:12pm UTC](https://forum.inductiveautomation.com/t/developing-custom-vision-component-modules-with-javafx/76709 "2023-07-21T15:12:44Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![Asjal\_Ahmad](https://avatars.discourse-cdn.com/v4/letter/a/9e8a1a/32.png) [@Asjal\_Ahmad](https://forum.inductiveautomation.com/u/Asjal_Ahmad)\
**Post date:** [July 21, 2023, 3:12pm UTC](https://forum.inductiveautomation.com/t/developing-custom-vision-component-modules-with-javafx/76709/1 "2023-07-21T15:12:44Z")

</div>

I'm currently working on developing custom vision component modules for Ignition, and I was wondering if it's possible to use a more modern framework like JavaFX for this task. I find JavaFX to be more intuitive, enhancing the overall development experience.

Has anyone tried using JavaFX to create custom vision components for Ignition? If so, I'd love to hear about any insights you might have.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [July 21, 2023, 3:18pm UTC](https://forum.inductiveautomation.com/t/developing-custom-vision-component-modules-with-javafx/76709/2 "2023-07-21T15:18:45Z")

</div>

It is definitely possible, ~~as there is at least one IA native object that is JavaFX: the Web Browser component.~~

Vision is fundamentally Swing, and your component will need to outwardly be a Swing JComponent that implements IA's [VisionComponent](https://files.inductiveautomation.com/sdk/javadoc/ignition81/8.1.1/com/inductiveautomation/vision/api/client/components/model/VisionComponent.html) interface. (Preferably using one of IA's abstract classes.) But JavaFX has wrappers for including it within Swing. Just be careful that all property operations happen on the appropriate foreground thread.

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [July 21, 2023, 3:22pm UTC](https://forum.inductiveautomation.com/t/developing-custom-vision-component-modules-with-javafx/76709/3 "2023-07-21T15:22:43Z")

</div>

> [@pturmel](#):
>
> IA native object that is JavaFX: the Web Browser component.

News to me... It's a Swing wrapper around a JxBrowser abstraction that at least claims to be a Swing panel, though you may have dived deeper into the internals than I have.

I will agree with you that this is _conceptually_ possible. I personally wouldn't find it worth the effort - you'll be "swimming upstream" the entire time. I'm also not sure _either_ Swing or JavaFX qualify as "modern".

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [July 21, 2023, 3:24pm UTC](https://forum.inductiveautomation.com/t/developing-custom-vision-component-modules-with-javafx/76709/4 "2023-07-21T15:24:35Z")

</div>

> [@paul-griffith](#):
>
> News to me...

The Web Browser component (and anything else depending on JxBrowser) requires JavaFX. That's why the designer doesn't run on RPis.

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [July 21, 2023, 3:25pm UTC](https://forum.inductiveautomation.com/t/developing-custom-vision-component-modules-with-javafx/76709/5 "2023-07-21T15:25:19Z")

</div>

No, it doesn't. It doesn't run on RPi because we don't have JXBrowser in ARM flavor.

The launchers are JavaFX.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [July 21, 2023, 3:27pm UTC](https://forum.inductiveautomation.com/t/developing-custom-vision-component-modules-with-javafx/76709/6 "2023-07-21T15:27:39Z")

</div>

Huh. TIL.

---

<div class="post-metadata">

**Author:** ![Asjal\_Ahmad](https://avatars.discourse-cdn.com/v4/letter/a/9e8a1a/32.png) [@Asjal\_Ahmad](https://forum.inductiveautomation.com/u/Asjal_Ahmad)\
**Post date:** [July 21, 2023, 3:58pm UTC](https://forum.inductiveautomation.com/t/developing-custom-vision-component-modules-with-javafx/76709/7 "2023-07-21T15:58:13Z")

</div>

Why is it not worth the effort?

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [July 21, 2023, 4:06pm UTC](https://forum.inductiveautomation.com/t/developing-custom-vision-component-modules-with-javafx/76709/8 "2023-07-21T16:06:16Z")

</div>

Well, for one, I kinda like Swing. I don't have a ton of experience with JavaFX, but _everything_ in the Designer and Vision client that already exists is Swing. All the resources you're going to find for Vision are going to assume Swing. All the utility classes, builtin functionality (bindings, property references), etc... Swing.  
Every step of the way you're using JavaFX (_in Vision_), you're going to be putting a square peg in a round hole.

---

<div class="post-metadata">

**Author:** ![Isaac\_Apodaca](https://avatars.discourse-cdn.com/v4/letter/i/bcef8e/32.png) [@Isaac\_Apodaca](https://forum.inductiveautomation.com/u/Isaac_Apodaca)\
**Post date:** [February 18, 2026, 2:39pm UTC](https://forum.inductiveautomation.com/t/developing-custom-vision-component-modules-with-javafx/76709/9 "2026-02-18T14:39:53Z")

</div>

Just curious @paul-griffith, does this still hold true for ignition 8.3?

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [February 18, 2026, 2:52pm UTC](https://forum.inductiveautomation.com/t/developing-custom-vision-component-modules-with-javafx/76709/10 "2026-02-18T14:52:24Z")

</div>

That everything is still written in Java Swing? Yes.
