如何使用 TableModel 在 JTable 中呈现组件?

How to render a Component in JTable using TableModel?

我已经使用 AbstractTableModel 成功显示了 JTable,但我想在 [=25] 的 getValueAt 方法中为最后一列中的每一行添加删除按钮=]s Object 我无法 return JButtonJLabel 或任何可点击的 JComponent。我试过了,但只得到对象描述 toString.

是否有另一种解决方案可以在不使用 TableModel 方法的情况下在 JTable 中呈现 JComponent

一种方式:TableColumn.setCellEditor(jbutton_instance) 在手动添加的列上。

Is there another solution to render JComponent in JTable without using the TableModel approach?

TableModel 用于保存模型数据的数据。

JTable 实现了每一列的数据视图。渲染器只是数据的图片。您可以轻松地将数据呈现为看起来像一个按钮,但是呈现器不响应任何事件。

JTable 确实支持编辑器,这就是您与实际组件交互的方式。当您编辑普通单元格时,JTextField 会放置在单元格位置,这样您就可以在单元格中键入数据,然后将数据保存到模型中。

所以如果你想点击一个按钮,那么你需要使用一个按钮作为编辑器。

查看 Table Column Button 以获得使用 JButton 作为渲染器和编辑器的 class。然后,您提供 class 一个 Action 以在单击按钮时调用。

阅读 Concepts: Renderers and Editor 上的 Swing 教程部分了解更多信息。还有一个关于 Using Other Editors.

的部分