首先,你的循环体虽然语法没问题,但是3<4是恒成立的,所以是一个死循环。其次,table.getColumn(3).dispose(); 意思是将索引号(Index)为3的一列销毁。重复做这件事情,无论有多少列,最终到只剩3列的时候,此时最大索引号是2,而你要删除的索引号为3,必然会抛 Index out of bounds异常。类似的,数组与集合遍历,一定要注意边界问题。