如何使用 TableModel 在 JTable 中呈现组件?
How to render a Component in JTable using TableModel?
我已经使用 AbstractTableModel
成功显示了 JTable
,但我想在 [=25] 的 getValueAt
方法中为最后一列中的每一行添加删除按钮=]s Object
我无法 return JButton
、JLabel
或任何可点击的 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
.
的部分
我已经使用 AbstractTableModel
成功显示了 JTable
,但我想在 [=25] 的 getValueAt
方法中为最后一列中的每一行添加删除按钮=]s Object
我无法 return JButton
、JLabel
或任何可点击的 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
.