 
 (defn s-text-field
   ([init-text] (s-text-field (Stream.) init-text 15))
-  ;([^String init-text ^Long width] (s-text-field (Stream.) init-text width))
-  ([^Stream s-text ^String init-text] (s-text-field s-text init-text 15))
-  ([^Stream s-text ^String init-text ^long width] (s-text-field s-text init-text width (Cell. true)))
+  ([string-or-stream string-or-width]
+     (if (string? string-or-stream)
+       (s-text-field (Stream.) string-or-stream string-or-width (Cell. true))
+       (s-text-field string-or-stream string-or-width 15 (Cell. true))))
+  ([string-or-stream string-or-width cell-or-width]
+     (if (string? string-or-stream)
+       (s-text-field (Stream.) string-or-stream string-or-width cell-or-width)
+       (s-text-field string-or-stream string-or-width cell-or-width (Cell. true))))
+  ;(s-text-field s-text init-text width (Cell. true)))
   ([^Stream s-text ^String init-text ^long width ^Cell enabled]
    (let [s-decrement (StreamSink.)
          allow (.map

      (.setSize 400 160)
      (.setVisible true))))


(defn -main
  [& args]
  (spinme)
  (add)
  (spinner)

  (:require [sodium.core :refer :all])
  (:require [clojure.string :as s])
  (:import [nz.sodium Cell  CellLoop Listener Stream StreamLoop StreamSink Operational Transaction Unit])
  (:import [javax.swing JButton JComponent JFrame JLabel JPanel JTextField SwingUtilities])
  (:import [java.awt FlowLayout GridBagLayout GridBagConstraints])
  (:import [java.awt.event ActionListener])
  (:import [javax.swing.event DocumentEvent DocumentListener]))
