web-dev-qa-db-fra.com

Java JTable récupérant les données de la ligne sélectionnée

Y a-t-il des méthodes qui sont utilisées pour obtenir les données de la ligne sélectionnée? Je veux simplement cliquer simplement sur une ligne spécifique contenant des données et cliquer sur un bouton qui imprimera les données dans la console.

enter image description here

8
ZeroCool

http://docs.Oracle.com/javase/7/docs/api/javax/swing/JTable.html

Vous y trouverez ces méthodes:

getValueAt(int row, int column)
getSelectedRow()
getSelectedColumn()

Utilisez un mélange de ceux-ci pour obtenir votre résultat.

23
ManyQuestions

Vous pouvez utiliser le code suivant pour obtenir la valeur de la première colonne de la ligne sélectionnée de votre table.

int column = 0;
int row = table.getSelectedRow();
String value = table.getModel().getValueAt(row, column).toString();
18
Saminda Peramuna

si vous souhaitez obtenir les données sur toute la ligne, vous pouvez utiliser cette combinaison ci-dessous

tableModel.getDataVector().elementAt(jTable.getSelectedRow());

Où "tableModel" est le modèle de la table accessible comme ceci

(DefaultTableModel) jTable.getModel();

cela renverra toutes les données de la ligne.

J'espère que cela aide quelqu'un

8

en utilisant de ListSelectionModel:

ListSelectionModel cellSelectionModel = table.getSelectionModel();
cellSelectionModel.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

cellSelectionModel.addListSelectionListener(new ListSelectionListener() {
  public void valueChanged(ListSelectionEvent e) {
    String selectedData = null;

    int[] selectedRow = table.getSelectedRows();
    int[] selectedColumns = table.getSelectedColumns();

    for (int i = 0; i < selectedRow.length; i++) {
      for (int j = 0; j < selectedColumns.length; j++) {
        selectedData = (String) table.getValueAt(selectedRow[i], selectedColumns[j]);
      }
    }
    System.out.println("Selected: " + selectedData);
  }

});

voir ici.

0
ParisaN