Converted your py5 Swing demo to “imported mode”, which can now be run outside Thonny:
import py5
from java.awt import Color
from javax.swing import JSlider, JButton, JColorChooser
fill = Color.GREEN
def setup():
py5.size(600, 660)
py5.fill(fill.getRGB())
global cx, cy, slider
cx, cy = py5.width >> 1, py5.height >> 1
slider = JSlider(JSlider.HORIZONTAL, 0, 500, 100)
slider.setBounds(180, 20, 200, 24)
slider.setToolTipText('circle diameter')
btn = JButton('Color')
btn.setBounds(400, 20, 80, 24)
btn.addActionListener(button_action)
window = py5.get_surface()
window.set_title('py5 Swing Demo')
canvas = window.get_native()
canvas.setBounds(0, 60, py5.width, py5.height - 60)
frame = canvas.getFrame()
frame.add(slider)
frame.add(btn)
slider.repaint()
btn.repaint()
def draw():
py5.background(0o320)
py5.circle(cx, cy, slider.getValue())
def button_action(_, TITLE = 'Choose color:'):
global fill
fill = JColorChooser.showDialog(None, TITLE, fill) or fill
py5.fill(fill.getRGB())
__name__ == '__main__' and py5.run_sketch()