ファイルを読み取ってarraylistに保存し、配列に変換するコードがあります(テーブルモデルに使用するため)
私のクラスは、abstracttablemodel を正しく拡張します。
私のすべてのコードは次のとおりです。
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.swing.table.AbstractTableModel;
public class ReadFileToList extends AbstractTableModel{
String[] col={"Fname","Lname","Number"};
List<String> data=new ArrayList<String>();
String[][] Arraydata;
public ReadFileToList(){
try{
FileReader fr=new FileReader("D:\\AllUserRecords.txt");
BufferedReader br=new BufferedReader(fr);
String line;
while((line=br.readLine()) !=null){
data.add(line);
}
br.close();
Arraydata=(String[][]) data.toArray();
}
catch(IOException ioe){
ioe.printStackTrace();
}
}
@Override
public String getColumnName(int colu){
return col[colu];
}
public int getRowCount() {
return Arraydata.length;
}
public int getColumnCount() {
return col.length;
}
public Object getValueAt(int rowIndex, int columnIndex) {
return Arraydata[rowIndex][columnIndex];
}
}
私のメイン クラスは ReadFileToListM です。
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
public class ReadFileToListM {
ReadFileToList rftl=new ReadFileToList();
public ReadFileToListM(){
JFrame frame=new JFrame();
JTable table=new JTable(rftl);
JPanel panel=new JPanel();
JScrollPane sp=new JScrollPane(table);
panel.add(sp);
frame.add(panel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(470,470);
frame.setVisible(true);
}
public static void main(String[] args){
new ReadFileToListM();
}
}
しかし、例外があります!
これは私の例外です:
Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [[Ljava.lang.String;
at javaapplication1.ReadFileToList.<init>(ReadFileToList.java:37)
at javaapplication1.ReadFileToListM.<init>(ReadFileToListM.java:8)
at javaapplication1.ReadFileToListM.main(ReadFileToListM.java:22)
Java Result: 1
私のtxtファイル:
FName Lname Number
second secondsecond 22
thired thithird 33
fourth fourfourr 44
fifth fiffif 55
助けてください、ありがとう。