(ns rosettacode.circle-random-points (:import [java.awt Color Graphics Dimension] [javax.swing JFrame JPanel])) (let [points (->> (for [x (range -15 16), y (range -15 16) :when (<= 10 (Math/hypot x y) 15)] [(+ x 15) (+ y 15)]) shuffle (take 100))] (doto (JFrame.) (.add (doto (proxy [JPanel] [] (paint [^Graphics g] (doseq [[x y] points] (.fillRect g (* 10 x) (* 10 y) 10 10)))) (.setPreferredSize (Dimension. 310 310)))) (.setResizable false) (.setDefaultCloseOperation JFrame/DISPOSE_ON_CLOSE) .pack .show))