在Outlook中,如果我将列标题拖出表格,我可以删除表格列。如何使用Swing JTable在Java中执行相同操作?
默认拖动&无法执行拖放操作,因为此功能与目标位置无关。它仅取决于拖动源。
答案 0 :(得分:3)
对于这个答案,我使用了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())));
}
}
}
这是一种非常基本的方式,没有处理异常或监视器。但至少它有效。