【发布时间】:2009-02-09 15:28:50
【问题描述】:
在 Outlook 中,如果我将列标题拖出表格,我可以删除表格列。如何在 Java 中使用 Swing JTable 做同样的事情?
默认的拖放操作是不可能的,因为此功能与目标位置无关。它仅取决于拖动源。
【问题讨论】:
-
对不起,我有时间测试它。我会尽快做的。
标签: java swing drag-and-drop jtable
在 Outlook 中,如果我将列标题拖出表格,我可以删除表格列。如何在 Java 中使用 Swing JTable 做同样的事情?
默认的拖放操作是不可能的,因为此功能与目标位置无关。它仅取决于拖动源。
【问题讨论】:
标签: java swing drag-and-drop 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())));
}
}
}
这是一个非常基本的方法,没有任何异常处理。但至少它有效。
【讨论】: