2009-02-09 78 views
3

在Outlook中,如果將列標題拖出表格,我可以刪除表格列。如何在Java中使用Swing JTable執行相同的操作?如何通過拖動從JTable中刪除列?

默認拖動&拖放操作是不可能的,因爲此功能與目標位置無關。它僅取決於拖動源。

+0

解決方案是否有效? – 2009-02-16 08:52:25

回答

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()))); 
    } 
    } 
} 

這是一個非常基本的方式,沒有任何異常處理或wathever。但至少它有效。