JTable : comment obtenir des cellules sélectionnées?
J'ai une JTable et ses TableModel, il fonctionne bien, mais ce que je veux faire maintenant est d'obtenir des cellules sélectionnées. J'ai pensé à faire quelque chose comme :
int rows = this.getTable().getRowCount();
int columns = this.getTable().getColumnCount();
for(int i = 0 ; i < rows ; i++)
{
for(int j = 0 ; j < columns ; j++)
{
if(table.getCell(i,j).isSelected() //...
}
}
Mais bien sûr, quelque chose comme ce qui n'existe pas. Que dois-je faire à la place?
OriginalL'auteur Rob | 2013-01-19
Vous devez vous connecter pour publier un commentaire.
Dans JTable, vous avez la
et
Vous pouvez essayer de combiner ces deux méthodes avec un MouseListener et un KeyListener.
Avec le KeyListener-vous vérifier si l'utilisateur est en appuyant sur la touche CTRL, ce qui signifie que l'utilisateur est en sélectionnant les cellules, puis avec une souris à l'écoute, pour chaque clic que vous magasin peut-être dans un Vecteur ou ArrayList les cellules sélectionnées:
OriginalL'auteur BackSlash
table.getSelectedRow() obtiendrez ligne sélectionnée.
table.getSelectedColumns() obtiendrez des colonnes sélectionnées.
getValueAt(rowIndex, columnIndex) donnera la valeur actuelle à la ligne pour chaque colonne.
Ok, peut-être que vous avez raison. Laissez-nous attendre pour l'OP de réponse.
est bon, j'ai un tableau comme une feuille de calcul afin que je puisse choisir de nombreuses cellules.
Ok. Donc, je pense même que j'ai essayer ce pour obtenir toutes les cellules sélectionnées.
découvrez ma solution, il le fait ce dont vous avez besoin
OriginalL'auteur Amarnath
JTable a des méthodes pour obtenir les lignes sélectionnées et obtenez les colonnes sélectionnées.
OriginalL'auteur sbridges
Vous pouvez utiliser:
Vous pouvez obtenir en ligne et en colonne (
table.getSelectedRow()
ettable.getSelectedColumn()
) mais si vous avez sélectionné plus d'une cellule, la méthodetable.getSelectedRow()
ettable.getSelectedColumn()
retour de la cellule de la position de la première cellule qui a été cliqué.D'autre part,
table.rowAtPoint(e.getPoint())
ettable.columnAtPoint(e.getPoint())
restituer les cellules du tableau qui a été cliqué pour la dernière fois.OriginalL'auteur Fred Brasil