I have read that Processing doesn’t play well with the Swing library
That’s not a problem if you use a separate thread. It was discussed here:https://discourse.processing.org/t/swing-components-in-default-processingwindow/35483
A few things have been learned since that original post. For example the default canvas can be used for conventional drawing calls using draw() if you reduce the size of it and use it like a normal control instead of removing it entirely (obviates use of JPanel for drawing). Swing components can also be used in Python with py5. I’m mentioning all of this not to persuade you to switch from G4P but to clear up the threading issue; Processing plays nicely with Swing if you use a separate thread. We’ve also been using it in py5 without the additional thread and so far no problems that we are aware of.