Swing Components in Default Processing Window_py5

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()
1 Like