私のテキストファイルには次のようなデータが含まれています:sample.txt
MEMHEAD 1 1 NA SetString srcCode
MEMHEAD 1 2 NA SetString memIdnum
LGLNAME 1 5 該当なし SetString onmfirst
MyClassModel
次のように拡張するクラスを作成しましAbstractTableModel
た:
public class MyClassModel extends AbstractTableModel
{
Vector data;
Vector columns;
public MyTableModel() {
String line;
try {
FileInputStream fis = new FileInputStream("sample.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
StringTokenizer st1 = new StringTokenizer(br.readLine(), ",");
while (st1.hasMoreTokens())
columns.addElement(st1.nextToken());
while ((line = br.readLine()) != null) {
StringTokenizer st2 = new StringTokenizer(line, ",");
while (st2.hasMoreTokens())
data.addElement(st2.nextToken());
}
br.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public int getRowCount() {
return data.size() / getColumnCount();
}
public int getColumnCount() {
return columns.size();
}
public Object getValueAt(int rowIndex, int columnIndex) {
return (String) data.elementAt((rowIndex * getColumnCount())
+ columnIndex);
}
}
}
このようにして、ファイルからデータを取得しました。JTable
を使用してモデルを作成し、設定すると、 table.setModel(MyTableModel)
. を取得していNullPointerException
ます。
続き:
テキスト ファイル データは JTable に表示されていますが、JTable にはジャンク データを含む余分な行も含まれており、それらの行を押すと、
java.lang.ArrayIndexOutOfBoundsException: 180 >= 180
この例外がスローされます。しかし、回線に問題があることがわかりました
public Object getValueAt(int rowIndex, int columnIndex) {
return (String) data.elementAt((rowIndex * getColumnCount()) + columnIndex);
}
しかし、何が問題なのかわかりません。助けてください。