私は宿題のためのレストラン注文システムメニューをJavaで作っています。私は、テーブルの内容を含むテキストファイルを作成するプログラムの形式で領収書を作成します。私はしかし、これを行うのに苦労している。私のすべてのテーブルの内容は文字列です。JTableの内容をテキストファイルとして保存する
これは、テーブルの内容をエクスポートするためのコードです:
try{
BufferedWriter bfw = new BufferedWriter(new FileWriter("Data.txt"));
for(int i = 0 ; i < tableSalesFood.getColumnCount() ; i++){
bfw.write(tableSalesFood.getColumnName(i));
bfw.write("\t");
}
for (int i = 0 ; i < tableSalesFood.getRowCount(); i++){
bfw.newLine();
for(int j = 0 ; j < tableSalesFood.getColumnCount();j++){
bfw.write((String)(tableSalesFood.getValueAt(i,j)));
bfw.write("\t");;
}
}
bfw.close();
}catch(Exception ex){
ex.printStackTrace();
}
私はボタンをクリックすると、プログラムが例外エラーを返します。
java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
'tableSalesFood.getValueAt(i、j)の.toString()' getValueAtリターンをオブジェクトであり、文字列ではありません。 ObjectはString、Integer、Double、RubberDuckyのいずれかです。 StringにキャストしないでtoStringメソッドを呼び出します。 – Compass
テキストとのシリアル化/逆シリアル化の場合、JTable自体ではなく、基本となる 'TableModel'のto/fromテキストを使用する方がよいでしょう。 – ControlAltDel