私は手続き型言語の経験が豊富で、それを Java にマッピングしようとしています。
csv ファイルを使用してデフォルトのテーブル モデルを作成し、そのファイルをタブ内の JTable にロードするコードがあります。それはうまくいきます。しかし、テーブルに行を追加したいのですが、行を追加するために JTable にアクセスする方法がわかりません。
/* Build the fight index tab from a file */
public void LoadIndexTable(String file) {
try {
FileReader fin = new FileReader(file);
DefaultTableModel imodel = createTableModel(fin, null);
JTable itable = new JTable(imodel);
indexpanel = new JScrollPane(itable);
} catch (Exception e) {
e.printStackTrace();
}
}
/* インデックス テーブルに行を追加します */
public void AddIndexRow() {
itable.addRow(new Object[]{"Column 1", "Column 2", "Column 3"});
}
/* csv ファイルを正しいヘッダーでテーブルにロードします */
public static DefaultTableModel createTableModel(Reader in, Vector<Object> headers)
{
DefaultTableModel model = null;
Scanner s = null;
try {
Vector<Vector<Object>> rows = new Vector<Vector<Object>>();
s = new Scanner(in);
while (s.hasNextLine()) {
rows.add(new Vector<Object> (Arrays.asList(s.nextLine().split("\\s*,\\s*",-1))));
}
if (headers == null) {
headers = rows.remove(0);
model = new DefaultTableModel(rows, headers);
} else {
model = new DefaultTableModel(rows, headers);
}
return model;
} finally {
s.close();
}
}