"(list-projects)"메서드는 SQLite 데이터베이스에서 맵을 쿼리합니다.Clojure/seeseaw.core/table lazy-seq 검색 실패
(doall (apply prn (pm.models.db/list-projects)))
pm.core==>{:id 1, :name "MyTestProj", :owner "mbc", :date "2017-12-19 13:12:45"} {:id 2, :name "newproject1", :owner "mbc", :date "2017-12-19 13:12:45"} {:id 3, :name "newproject1", :owner "mbc", :date "2017-12-19 13:12:45"} {:id 4, :name "abc", :owner "def", :date "2017-12-19 13:12:45"} {:id 5, :name "abc", :owner "def", :date "2017-12-19 13:12:45"} {:id 6, :name "abc", :owner "def", :date "2017-12-19 13:12:45"} {:id 7, :name "newproject1", :owner "mbc", :date "2017-12-19 13:12:45"} {:id 8, :name "", :owner "", :date strong text"2017-12-19 13:12:45"}
내가 사용하는 결과와 seesaw.core/테이블 (자바 JTable의)를 채우는 싶습니다 : 나는 seesaw.core/프레임/미그 패널/테이블 (JFrame의/인 JPanel를 구성 할 때 행 속성을/JTable).
(def main-panel
(mig-panel
:constraints ["fill, ins 0"]
:items [[(seesaw.core/table
:id :tbl1
:size [640 :by 480]
:model [:columns [:id :name :owner :date]
:rows [(doall (apply prn (pm.models.db/list-projects)))]
]) "grow"]
]))
2. Unhandled clojure.lang.Compiler$CompilerException
Error compiling form-init4108264894568019320.clj at (44:16)
ang.Thread/run
1. Caused by java.lang.IllegalArgumentException
row must be a map or vector, got null
내가지도를 삽입하면 {: ID 1 : 이름 "MyTestProj": 소유자 "MBC", : 날짜를 "2017년 12월 19일 13시 12분 45초"} {: ID ... .....} {} {} {} {} {} 직접, 잘 작동, 테이블의 행이 제대로 채워집니다, 그래서 출력의 형식 (doall (apply prn (pm.models.db/list-projects))))이 필요합니다.
어떻게하면 seesaw.core/mig-panel의 컨텍스트에서 (내가 가정 한) lazy-seq를 검색 할 수 있습니까? 감사 모티머
'doall '은 필요하지 않습니다. 패널은 목록을 사용하여 목록을 작성해야합니다 (여기서는 문제가 아님). – Carcigenicate
그리고'(행을리스트로 평가하기 위해 prn을 적용해라.) 기대하면 벡터에': rows'가 싸여 있으면 안됩니다. 그 에러를 일으킬 것이라고는 기대하지 않지만, (pm.models.db/list-projects)). – Carcigenicate
힌트를 주셔서 감사합니다. 해결책은 : rows (pm.models.db/list-projects) mig- 패널에는 벡터 또는지도가 필요합니다. 직접 쿼리 한 벡터를 사용할 수 있습니다. –