(def top-frame (doto (Frame.) (.addWindowListener (proxy [WindowAdapter] [] (windowClosing [e] (.dispose top-frame)))) (.add (doto @(def top-panel (Panel.)) (.setLayout (BorderLayout. 5 5)) (.add "North" (doto @(def choice (Choice.)) (.add "None") (.addItemListener (reify ItemListener (itemStateChanged [_ e] (send timers change-timer (.getItem e)) (.validate top-panel)))))) (.add "Center" (doto @(def timer-panel (Panel.)) (.setLayout (GridLayout. 0 2)))) (.add "South" (doto (Panel.) (.setLayout (GridLayout. 0 2)) (.add (doto (Button. "Add") (.addActionListener (reify ActionListener (actionPerformed [_ _] (add-timer (.getText add-name))))))) (.add @(def add-name (TextField.))))))) (.pack) (.setVisible true)))