チュートリアルを使用して JTable の実装方法を確認しましたが、各セルのデータに正確にアクセスして、ユーザーが入力したデータを抽出する方法がわかりません。
テーブルには2列とN行があります
最初の列には文字列があり、2 番目の列にはintがあります
私が使用したチュートリアルはこれです
すべてJTable
にデータモデルが接続されています。ユーザーは、このデータ モデルにデータを追加し (たとえば、javax.swing.table.TableModel.setValueAt(Object, int, int)
メソッドを呼び出して)、JTable
それらを表示できます。からのデータを処理するにJTable
は、次のアプローチを使用できます。
JTable t = new JTable(/* set some table-model that will contain the data */);
...
/* get some table-model that will contain the data */
TableModel tm = t.getModel();
for (int i = 0; i < tm.getRowCount(); i++) {
for (int j = 0; j < tm.getColumnCount(); j++) {
Object o = tm.getValueAt(i, j);
if (o instanceof Integer) {
System.out.println((Integer)o);
} else if (o instanceof String) {
System.out.println((String)o);
}
}
}
「データ変更のリッスン」という段落を確認する必要があります。
一般に、テーブルに関連付けられたモデルを取得し、それを「getValueAt」メソッドと呼ぶ必要があります。セルに関連付けられたオブジェクトを返すため、文字列または整数にキャストする必要があります。たとえば、2 列目と 3 行目の値を取得する場合、コードは次のようになります。
(整数) model.getValueAt(2,1)