2010-06-24 8 views
0

J'ajoute une étiquette à un JTable et ajoute l'événement mouseMotionListener à l'étiquette. L'étiquette se déplace dans la table sur l'événement mouseDragged. La table contient plus de 50 colonnes et seulement 15 colonnes seront visibles à tout moment Maintenant, si je veux déplacer l'étiquette de l'autre côté de la même rangée, je ne peux pas déplacer l'étiquette sans déplacer la barre de défilement manuellement. Est-il possible de déplacer la barre de défilement automatiquement en faisant glisser l'étiquette?JTable Autoscroll

JTable table = new JTable(model); 
JLabel label = new JLabel(); 
label.setBounds(100,50,80,20); 
table.add(label); 
label.addMouseMotionLister(new MouseMotionListener() 
{ 
public void mouseDragged(MouseEvent arg0) 
{ 
label.setBounds(label.getX()+arg0.getX(),Y,width,height); 
} 

Répondre

3

Appelez scrollRectToVisible (...) sur la table après avoir déplacé l'étiquette. Vous devriez pouvoir utiliser les limites de l'étiquette comme Rectangle pour la méthode.

Edit:

Conversion de la suggestion ci-dessus en anglais au code Java Je voudrais essayer quelque chose comme:

table.scrollToRect(theBoundsOfTheLabel);