SwingPanel doesn't work with Dialogs so I added DialogSupportingSwingPanel which works around the problem by grabbing a screenshot of its component and rendering an Image when the dialog is visible.
Some more changes were made to work better with a popup:
Wrap the settings with a Material Card
Add a Cancel button
Move buttons to the bottom right
Update the icons on the fly
Disable the Save button if paths are invalid
Allow dismissing the dialog with an invalid state but disable the Compile menu item. This should only be possible on first run.
SwingPanel doesn't work with Dialogs so I added DialogSupportingSwingPanel which works around the problem by grabbing a screenshot of its component and rendering an Image when the dialog is visible.
Some more changes were made to work better with a popup: