代码之家  ›  专栏  ›  技术社区  ›  Horcrux7

如何通过拖动从JTable中删除列?

  •  3
  • Horcrux7  · 技术社区  · 16 年前

    在Outlook中,如果将列标题从表中拖出,则可以删除表列。在Java中,使用Swing JTable,我如何才能做到这一点?

    默认拖放操作不可能,因为此功能独立于目标位置。它只取决于拖动源。

    1 回复  |  直到 16 年前
        1
  •  3
  •   Jérôme    16 年前

    对于这个答案,我用了 SimpleTableDemo . 我只是在桌子上加了一个鼠标速记器。这里是鼠标听筒:

    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())));
        }
      }
    }
    

    这是一种非常基本的方法,没有异常处理或异常处理。但至少它起作用了。