3
在Outlook中,如果将列标题拖出表格,我可以删除表格列。如何在Java中使用Swing JTable执行相同的操作?如何通过拖动从JTable中删除列?
默认拖动&拖放操作是不可能的,因为此功能与目标位置无关。它仅取决于拖动源。
在Outlook中,如果将列标题拖出表格,我可以删除表格列。如何在Java中使用Swing JTable执行相同的操作?如何通过拖动从JTable中删除列?
默认拖动&拖放操作是不可能的,因为此功能与目标位置无关。它仅取决于拖动源。
对于这个答案我用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())));
}
}
}
这是一个非常基本的方式,没有任何异常处理或wathever。但至少它有效。
解决方案是否有效? – 2009-02-16 08:52:25