import javax.swing.table.*; //import com.sun.java.swing.table.*; public class ExtendedTableModel extends DefaultTableModel { ExtendedTableModel(String[] n, int i) { super(n,i); } public Class getColumnClass(int c) { Double d = new Double(0); return d.getClass(); } public void setColumnName(int column, String newName) { columnIdentifiers.removeElementAt(column); columnIdentifiers.insertElementAt(newName,column); fireTableStructureChanged(); } // this method assumes that the table is initialized with // two columns, "A" and "B". It is safe to use until you have // more than 52 columns (the alphabet twice) public void addNextLetteredColumn() { char columnChar = (char)(64+getColumnCount()+1); if((char)(64+getColumnCount()+1) > 'Z') { columnChar = (char)((64+getColumnCount())-((int)'Z'-(int)'A')); addColumn(getUniqueString("" + columnChar + "" + columnChar)); } else addColumn(getUniqueString("" + columnChar)); } public String getUniqueString(String string) { for(int i = 0; i < getColumnCount(); i++) { if(string.equals(getColumnName(i))) { string = "~" + string + "~"; } } return string; } }