@Override
  public void actionPerformed(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);
    }
  }
@Override
  public void actionPerformed(ActionEvent e)