[英]How to render a Component in JTable using TableModel?
我已經使用AbstractTableModel
成功顯示了JTable
,但是我想為最后一列的每一行添加刪除按鈕,在返回Object
的getValueAt
方法中,我無法返回JButton
, JLabel
或任何可單擊的JComponent
。 我嘗試過,但只得到對象描述toString
。
是否有另一種解決方案可以在不使用TableModel
方法的情況下在JTable
呈現JComponent
?
是否有另一種解決方案可以在不使用TableModel方法的情況下在JTable中呈現JComponent?
TableModel用於保存模型數據的數據。
JTable實現每個列的數據視圖。 渲染器只是數據的圖片。 您可以輕松地將數據呈現為按鈕狀,但是呈現器不響應任何事件。
JTable確實支持編輯器,這就是您與實際組件進行交互的方式。 當您編輯普通單元格時,會將JTextField放置在單元格位置中,以便您可以在單元格中鍵入數據,然后將數據保存到模型中。
因此,如果要單擊按鈕,則需要使用按鈕作為編輯器。
查看“ 表列按鈕 ”中使用JButton作為呈現器和編輯器的類。 然后,向該類提供一個單擊按鈕時要調用的Action
。
閱讀Swing教程中有關“ 概念:渲染器和編輯器”的部分,以獲取更多信息。 還有關於Using Other Editors
的部分。
一種方法:將TableColumn.setCellEditor(jbutton_instance)添加到手工添加的列上。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.