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