“线程中的异常”;AWT-EventQueue-0“;java.lang.ClassCastException:无法将类java.lang.Integer转换为类java.lang.String
我使用OpenCSV jar将“线程中的异常”;AWT-EventQueue-0“;java.lang.ClassCastException:无法将类java.lang.Integer转换为类java.lang.String,java,swing,jtable,opencsv,Java,Swing,Jtable,Opencsv,我使用OpenCSV jar将JTable数据写入CSV文件。除非从表数据中读取数据,否则一切正常。无论何时我选择第一排,它都能完美地工作。但当我选择多行时,它给出了标题中提到的例外情况 代码如下: DefaultTableModel tableModel = (DefaultTableModel) jTable1.getModel(); int rows = Integer.parseInt((String)jTextField8.getText());
JTable
数据写入CSV文件。除非从表数据中读取数据,否则一切正常。无论何时我选择第一排,它都能完美地工作。但当我选择多行时,它给出了标题中提到的例外情况
代码如下:
DefaultTableModel tableModel = (DefaultTableModel) jTable1.getModel();
int rows = Integer.parseInt((String)jTextField8.getText());
String fileName = jTextField11.getText()+".csv";
File file = new File("/Users/startelelogic/Desktop/fileName");
if (jTable1.isEditing()){
jTable1.getCellEditor().stopCellEditing();
}
try{
FileWriter outputFile = new FileWriter(fileName);
CSVWriter writer = new CSVWriter(outputFile);
// Adding Header to csv File
String header[] = {"Sr. No.","CM","Liters"};
writer.writeNext(header);
// Adding data to csv
System.out.println("Rows \t:"+rows);
for(int i=0; i<rows; i++){
String[] data = new String[3];
for(int j=0; j< tableModel.getColumnCount(); j++){
data[j] = (String)tableModel.getValueAt(i, j);
}
writer.writeNext(data);
writer.close();
}
JOptionPane.showMessageDialog(null, "Table Data Written successfully!");
}catch(IOException ex){
JOptionPane.showMessageDialog(null, "FileWriting error");
ex.printStackTrace();
}
DefaultTableModel tableModel=(DefaultTableModel)jTable1.getModel();
int rows=Integer.parseInt((字符串)jTextField8.getText());
字符串文件名=jTextField11.getText()+“.csv”;
File File=新文件(“/Users/startelelogic/Desktop/fileName”);
if(jTable1.isEditing()){
jTable1.getCellEditor().stopCellEditing();
}
试一试{
FileWriter outputFile=新的FileWriter(文件名);
CSVWriter writer=新的CSVWriter(输出文件);
//向csv文件添加头文件
字符串头[]={“序号”,“厘米”,“升”};
writer.writeNext(标题);
//向csv添加数据
System.out.println(“行\t:+行);
对于(int i=0;i
java.lang.ClassCastException:无法将类java.lang.Integer转换为类java.lang.String
错误消息告诉您问题所在。不能将整数对象设置为字符串对象
data[j] = (String)tableModel.getValueAt(i, j);
上面的语句假设表中的所有数据都是String的实例
相反,您可以使用:
data[j] = tableModel.getValueAt(i, j).toString();
现在,数据数组将包含每个对象的字符串表示形式