Cell Spanning

Top  Previous  Next

 

TreeTable extends AdvancedJTable and is therefore capable of cell spanning. TreeTable overrides AdvancedJTable's method:

 

protected SpanDrawer createSpanDrawer();

 

, in order to set an inner DefaultSpanModel subclass, TreeTable.DefaultTreeSpanModel, which spans the header rows of the treetable. Here is how DefaultTreeSpanModel is implemented:

 

public class DefaultTreeSpanModel extends DefaultSpanModel {

       private CellSpan cs;

       /**

        * Constructs a DefaultTreeSpanModel.

        */

       public DefaultTreeSpanModel() {

               cs = new CellSpan(0, 0, 0, CellSpan.ALL_COLUMNS);

       }

       public CellSpan getCellSpanAt(int row, int column) {

               TreeTableModel model = (TreeTableModel) getModel();

               if (model.isHeader(row)) {

                       cs.setSpannedRow(row);

                       return cs;

               }

               return super.getCellSpanAt(row, column);

       }

}