https://www.iit.bme.hu/~softlab3/lab07/java_7_swing_manual_tasks.pdf