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

我搜索了很多,并得到了这个问题的一些答案,但是很多人提到给404错误的链接.
我想做这样的表:

有没有方法在java中为此?

MultiSpanCellTableExample演示了如何通过创建自定义TableUI来合并单元格.在这个例子中似乎有一个问题导致StackOverflowError,至少在Java 6中.要解决这个问题,请在AttributiveCellTableModel.setDataVector()中替换:

setColumnIdentifiers(columnNames);

有:

this.columnIdentifiers = columnNames;

IE:

public void setDataVector(Vector newData, Vector columnNames) {
    if (newData == null)
        throw new IllegalArgumentException(
                "setDataVector() - Null parameter");
    dataVector = new Vector(0);
    // setColumnIdentifiers(columnNames);
    this.columnIdentifiers = columnNames;
    dataVector = newData;

    cellAtt = new DefaultCellAttribute(dataVector.size(),
            columnIdentifiers.size());

    newRowsAdded(new TableModelEvent(this, 0, getRowCount() - 1,
            TableModelEvent.ALL_COLUMNS, TableModelEvent.INSERT));
}

问题是setColumnIdentifiers调用setDataVector,从而触发StackOverflowError.一旦修复,这是这个例子的样子:

JIDE还有一个现成的解决方案,不幸的是它不是免费的.这是例如CellSpanTable:

翻译自:https://stackoverflow.com/questions/21856733/how-to-merge-cell-in-defaulttablemodel-jtable

转载注明原文:java – 如何在DefaultTableModel / JTable中合并单元格?