我有一个使用 seesaw.swingx 创建的表,我想刷新表行中的数据(或者甚至清除整个表并为其提供新数据)。我如何实现这一点,我知道我可能必须使用table/table-model
,但是我如何将这个表模型提供给我当前的表?
我的表被创建为
(swingx/table-x :id :data-table
:horizontal-scroll-enabled? true
:model [:columns [{:key :first-name :text "First Name"}
{:key :last-name :text "Last Name"}]
:rows (get-data)]))
编辑:
所以这是我的处理程序,我想更新我的表
(defn- return-movie-handler
[event]
(let [root (seesaw/to-root event)
table (seesaw/select root [:#data-table])]
;some code
(seesaw/replace! root table (get-table-model))))))
我get-table-model
的是
(defn- get-table-model
[]
(seesaw.table/table-model :columns [{:key :first-name :text "First Name"}
{:key :last-name :text "Last Name"}]
:rows (get-data)))
这样做我得到一个例外java.lang.IllegalArgumentException: No implementation of method: :make-widget* of protocol: #'seesaw.make-widget/MakeWidget found for class: seesaw.table.proxy$javax.swing.table.DefaultTableModel