web-dev-qa-db-ja.com

Java JTableは選択された行のデータを取得します

選択した行のデータを取得するに使用されるメソッドはありますか?データが表示されている特定の行をクリックし、コンソールでデータを印刷するボタンをクリックするだけです。

enter image description here

8
ZeroCool

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

次のメソッドが含まれています。

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

これらを組み合わせて使用​​すると、結果が得られます。

23
ManyQuestions

次のコードを使用して、テーブルの選択した行の最初の列の値を取得できます。

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

行全体のデータを取得する場合は、以下のこの組み合わせを使用できます

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

「tableModel」は、そのようにアクセスできるテーブルのモデルです

(DefaultTableModel) jTable.getModel();

これにより、行データ全体が返されます。

これが誰かの助けになることを願っています

8

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);
  }

});

こちらをご覧ください

0
ParisaN