2009-02-09 10 views
3

Dans Outlook, je peux supprimer une colonne de tableau si je fais glisser l'en-tête de colonne hors de la table. Comment puis-je faire la même chose en Java avec un JTable Swing?Comment puis-je supprimer une colonne d'un JTable en faisant glisser?

Un glissement par défaut & drop opération n'est pas possible car cette fonction est indépendante de la position cible. Cela dépend uniquement de la source de glissement.

+0

La solution est-elle efficace? –

+0

Désolé, bourgeon j'ai eu le temps de le tester. Je le ferai bientôt. – Horcrux7

Répondre

3

Pour cette réponse, j'ai utilisé le SimpleTableDemo. J'ajoute simplement un MouseListener à la table. Voici le 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()))); 
    } 
    } 
} 

Ceci est vraiment un moyen de base, il n'y a pas exception gérée ou wathever. Mais au moins cela fonctionne.