Как я могу удалить столбец из JTable с помощью перетаскивания? - PullRequest
3 голосов
/ 09 февраля 2009

В Outlook я могу удалить столбец таблицы, если перетащу заголовок столбца из таблицы. Как я могу сделать то же самое в Java с Swing JTable?

Операция перетаскивания по умолчанию невозможна, поскольку эта функция не зависит от целевой позиции. Это зависит только от источника перетаскивания.

1 Ответ

3 голосов
/ 11 февраля 2009

Для этого ответа я использовал SimpleTableDemo . Я просто добавляю MouseListener в таблицу. Вот MouseListener:

class MyMouseListener implements MouseListener {
  public void mouseClicked(MouseEvent arg0) {}
  public void mouseEntered(MouseEvent arg0) {}
  public void mouseExited(MouseEvent arg0) {}
  public void mousePressed(MouseEvent arg0) {}
  public void mouseReleased(MouseEvent m) {
    JTableHeader tableHeader = (JTableHeader)m.getComponent();
    JTable table = tableHeader.getTable();
    if (!table.getBounds().contains(m.getPoint())) {
      table.removeColumn(table.getColumnModel().getColumn(
          tableHeader.columnAtPoint(m.getPoint())));
    }
  }
}

Это действительно простой способ, здесь нет обработанных исключений или каких-либо проблем. Но, по крайней мере, это работает.

...