我已经成功地使用JTable
显示了AbstractTableModel
,但是我想在返回{{1}的getValueAt
方法中为最后一列的每一行添加删除按钮}我无法返回Object
,JButton
或任何可点击的JLabel
。我尝试过,但只得到对象描述JComponent
。
是否有另一种解决方案可以在不使用toString
方法的情况下在JComponent
中呈现JTable
?
答案 0 :(得分:3)
是否存在另一种无需使用TableModel方法即可在JTable中呈现JComponent的解决方案?
TableModel用于保存模型数据。
JTable实现每一列的数据视图。渲染器只是数据的图片。您可以轻松地将数据呈现为按钮状,但是呈现器不响应任何事件。
JTable确实支持编辑器,这就是您与实际组件进行交互的方式。当您编辑普通单元格时,会在单元格位置放置一个JTextField,以便您可以在单元格中键入数据,然后将数据保存到模型中。
因此,如果要单击按钮,则需要使用按钮作为编辑器。
签出Table Column Button来使用JButton作为渲染器和编辑器的类。然后,您为该类提供了一个Action
,当单击按钮时将要调用它。
阅读Concepts: Renderers and Editor上Swing教程中的部分,以获取更多信息。关于Using Other Editors
,还有一节。
答案 1 :(得分:1)
一种方法:手动添加列上的TableColumn.setCellEditor(jbutton_instance)。