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

Java 如何使用TableModel在JTable中呈现组件?,java,swing,jtable,jcomponent,Java,Swing,Jtable,Jcomponent,我已经使用AbstractTableModel成功地显示了JTable,但是我想为最后一列中的每一行添加删除按钮,在返回对象的getValueAt方法中,我无法返回JButton,JLabel或任何可单击的JComponent。我试过了,只得到了对象描述toString 是否有另一种解决方案可以在JTable中呈现JComponent,而无需使用TableModel方法?在手动添加的列上呈现单向:TableColumn.setCellEditor(jbutton_实例)。在手动添加的列上呈现单向

我已经使用
AbstractTableModel
成功地显示了
JTable
,但是我想为最后一列中的每一行添加删除按钮,在返回
对象的
getValueAt
方法中,我无法返回
JButton
JLabel
或任何可单击的
JComponent
。我试过了,只得到了对象描述
toString


是否有另一种解决方案可以在
JTable
中呈现
JComponent
,而无需使用
TableModel
方法?

在手动添加的列上呈现单向:TableColumn.setCellEditor(jbutton_实例)。在手动添加的列上呈现单向:TableColumn.setCellEditor(jbutton_实例)

有没有另一种不用TableModel方法在JTable中呈现JComponent的解决方案

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

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

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

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

检查使用JButton作为渲染器和编辑器的类。然后,您为类提供了一个
操作
,在单击按钮时将被调用

有关更多信息,请阅读上的Swing教程部分。还有一节介绍如何使用其他编辑器

有没有另一种不用TableModel方法在JTable中呈现JComponent的解决方案

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

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

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

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

检查使用JButton作为渲染器和编辑器的类。然后,您为类提供了一个
操作
,在单击按钮时将被调用


有关更多信息,请阅读上的Swing教程部分。还有一节是关于使用其他编辑器的

@Andrew Thompson,谢谢你的帮助,但这可能吗?@AndrewThompson我想要的是功能而不是外观实际上,我以前使用过一些特定的单元格渲染器,它们都是关于样式的,不是真正将单元格变成一个容器!对吗?@Andrew Thompson,谢谢你的帮助,但这可能吗?@AndrewThompson我想要的是功能而不是外观实际上,我以前使用过一些特定的单元格渲染器,它们都是关于样式,而不是真正将单元格变成一个容器!对吗?“你需要使用一个按钮作为编辑器”我几乎要提到编辑器,但决定离开它,希望有一位桌子大师回答。很高兴我这么做了。回答得很好。“你需要使用一个按钮作为一个编辑器”我几乎要提到编辑器,但决定离开它,希望有一位桌面大师能回答。很高兴我这么做了。回答得很好。