See this. You can use getModel method to get ListModel. And then use getElementAt
and getSize
method to build array or list or whatever you want.
(def data (into-array String ["one" "two" "three" "four"]))
(def myList (JList. data))
(->> myList
.getModel
((juxt identity (memfn getSize)))
((fn [[a b]] (map #(.getElementAt a %) (range b))))
(apply vector) (#(conj % "five")))