void (ActionEvent e) { if (myColumns.isEmpty()) { stop(); if (myDone != null) { SwingUtilities.invokeLater(myDone); } return; } final TableColumn c = myColumns.get(0).first; if (!added) { myTable.addColumn(c); c.setMaxWidth(0); c.setPreferredWidth(0); c.setWidth(0); added = true; } final int prefWidth = myColumns.get(0).second.intValue(); int width = c.getWidth(); width = Math.min(width + myStep, prefWidth); c.setMaxWidth(width); c.setPreferredWidth(width); c.setWidth(width); if (width == prefWidth) { added = false; myColumns.remove(0); //c.setMaxWidth(oldMaxWidth); } }