J'ai ce code pour obtenir une ligne d'une JTable qui est généré par un DragEvent pour un DropTarget dans certains composants C qui peuvent ou peuvent ne pas être le JTable:Java/Swing: JTable.rowAtPoint ne fonctionne pas correctement pour les points en dehors de la table?
public int getRowFromDragEvent(DropTargetDragEvent event) {
Point p = event.getLocation();
if (event.getSource() != this.table)
{
SwingUtilities.convertPointToScreen(p,
event.getDropTargetContext().getComponent());
SwingUtilities.convertPointFromScreen(p, this.table);
if (!this.table.contains(p))
{
System.out.println("outside table, would be row
"+this.table.rowAtPoint(p));
}
}
return this.table.rowAtPoint(p);
}
Le System.out.println est juste un hack en ce moment. Ce que je me demande, c'est pourquoi le System.out.println n'imprime pas toujours "row -1". Lorsque la table est vide, c'est le cas, mais si je fais glisser quelque chose sur la ligne d'en-tête de la table, j'obtiens le println avec "row 0". Cela semble être un bug ... ou je ne comprends pas comment fonctionne rowAtPoint()
?
6u16 JRE. Merci! –
soupir. 5 ans plus tard et ils ne l'ont pas réparé. :-( –
C'est probablement parce qu'il n'a pas encore reçu de votes ... – Fortega