在 Outlook 中,如果我将列标题拖出表格,我可以删除表格列。如何在 Java 中使用 Swing JTable 做同样的事情?
无法进行默认拖放操作,因为此功能与目标位置无关。它仅取决于拖动源。
在 Outlook 中,如果我将列标题拖出表格,我可以删除表格列。如何在 Java 中使用 Swing 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())));
}
}
}
这是一个非常基本的方法,没有异常处理或无论如何。但至少它有效。