0

只是想知道我们能否将 JTable 的单元格作为 JComponent 检索,我们是否可以计算 jtable 的每个单元格的面积,以便我可以绑定到用户以单击该特定区域。

4

2 回答 2

3

首先尝试 JTable 教程。

JTable 使用表格单元格渲染器,它提供用于渲染表格单元格的 JComponent。存在效率优化,通常(使用 DefaultTableCellRenderer)相同的 JComponent 被重用,并适应 TableModel 单元格的内容。

(除了渲染器,还有表格单元格编辑器。)

在您的情况下,您只需覆盖 aDefaultTableCellRenderer并执行 a jtable.setRenderer

于 2012-09-17T09:21:16.047 回答
3

我们可以将 jtable 的单元格作为 JComponent 检索吗?

简而言之,没有。为了绘制 JTable,Swing 使用了渲染器的概念。这意味着我们不再为每个单元格使用一个活动组件,而是重用相同的组件来绘制 JTable 的一整列或几列。这意味着 JTable 将使用适当的参数调用渲染器,将其大小和位置设置为相应的单元格,调用绘制方法,然后将组件进一步移动,直到整个表格被绘制。这意味着 JTable 中的每个单元格都没有子组件。在此处查看有关这一切的更多详细信息。

现在,如果要绑定鼠标侦听器,可以直接在 JTable 上进行,您可以使用它getCellRect来确定单击是否在特定单元格内,或者使用columnAtPointrowAtPoint找出单击了哪个单元格。

于 2012-09-17T09:22:34.427 回答