Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure/seeseaw.core/table lazy seq检索失败_Clojure_Jtable_Lazy Sequences_Seesaw - Fatal编程技术网

Clojure/seeseaw.core/table lazy seq检索失败

Clojure/seeseaw.core/table lazy seq检索失败,clojure,jtable,lazy-sequences,seesaw,Clojure,Jtable,Lazy Sequences,Seesaw,我的“(列表项目)”方法从SQLITE数据库中查询出一个映射 (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

我的“(列表项目)”方法从SQLITE数据库中查询出一个映射

    (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/frame/mig-panel/table(JFrame/JPanel/JTable)时,我希望使用:row属性将这些结果填充到seesaw.core/table(Java JTable)

如果我插入映射{:id 1,:name“MyTestProj”,:owner“mbc”,:date“2017-12-19 13:12:45”}{:id……。}{{{}{}{} 直接来说,它工作正常,表中的行被正确填充,所以(doall(apply prn(pm.models.db/list projects))的输出格式就是我所需要的

如何在seesaw.core/mig-panel的上下文中检索(我假定)惰性seq? 谢谢 莫蒂默

(pm.models.db/list projects)生成的列表可以直接用作:rows键(无括号)的值。 :行(pm.models.db/列表项目)


感谢Carcigenicate的建议。

您不需要
doall
。面板需要实现列表才能使用它(虽然这里不是问题)。如果您希望
(应用prn
对行列表求值),那么您可能不应该将
:行
包装在向量中。我不希望这会导致错误,但如果我认为是错误的。如果应该只是
:行(应用prn(pm.models.db/list projects))
。感谢您的提示。解决方案是:行(pm.models.db/list projects)mig面板需要矢量或地图,我可以直接使用查询出来的矢量。
(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
pm.core> (pm.models.db/list-projects)
({: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"} )
pm.core>