合并 JTable 中的单元格

Posted

技术标签:

【中文标题】合并 JTable 中的单元格【英文标题】:Merging cells in JTable 【发布时间】:2010-10-03 08:48:05 【问题描述】:

是否可以合并 JTable 对象的某些单元格?

(来源:codeguru.com)

如果无法通过 JTable 实现,那么最好的方法是什么。谢谢。

【问题讨论】:

【参考方案1】:

您可以使用合并原始 TableModel 的两列的 TableModel 来实现 JTable。

class Model2 extends AbstractTableModel

private TableModel delegate;
public Model2(TableModel delegate)
 
 this.delegate= delegate;
 

public int getRowCount()  return this.delegate.getRowCount();
public int getColumnCount()  return this.delegate.getColumnCount()-1;
public Object getValueAt(int row, int col)
 
 if(col==0) return ""+delegate.getValueAt(row,col)+delegate.getValueAt(row,col+1);
 return delegate.getValueAt(col+1);
 
(...)

【讨论】:

我说的是合并“单元格”,而不是列。【参考方案2】:

不是开箱即用的。 Here is an example 支持合并任意单元格。 This page 有几个带有跨单元格的表格示例。当然它是旧的,你得到你付出的代价。如果付费软件是一个选项,JIDE Grids 有一些非常好的 Swing table 支持,包括custom cell spans。

【讨论】:

这些 URL 中有 4 个是 404。:( -1 两年后没有修复:(

以上是关于合并 JTable 中的单元格的主要内容,如果未能解决你的问题,请参考以下文章

如何在 DefaultTableModel/JTable 中合并单元格?

更改单元格颜色而不更改其他单元格中的颜色(Jtable)

如何使 JTable 单元格不可编辑但应该能够选择和复制当前单元格中的值

JTable 单元格颜色

在点击之前如何使JTable中的单元格为空?

如何将工具提示添加到 jtable 中的单元格?