“线程中的异常”;AWT-EventQueue-0“;java.lang.ClassCastException:javax.swing.JTable$1不能转换为javax.swing.table.DefaultTableModel
当我尝试将表数据复制到数组时,出现了此运行时异常。我曾经“线程中的异常”;AWT-EventQueue-0“;java.lang.ClassCastException:javax.swing.JTable$1不能转换为javax.swing.table.DefaultTableModel,java,arrays,swing,jtable,store,Java,Arrays,Swing,Jtable,Store,当我尝试将表数据复制到数组时,出现了此运行时异常。我曾经 DefaultTableModel model = new DefaultTableModel(dataValues, columnNames); jtable.setModel(model); 我使用表的setModel方法来设置模型。问题仍然存在。请提供示例代码。表中存储的默认值类型为对象类型。尝试先将其转换为“字符串”类型(或根据需要),然后将其存储在数组中。以下是您请求的示例代码。这样做不会出错: import javax.s
DefaultTableModel model = new DefaultTableModel(dataValues, columnNames);
jtable.setModel(model);
我使用表的
setModel
方法来设置模型。问题仍然存在。请提供示例代码。表中存储的默认值类型为对象类型。尝试先将其转换为“字符串”类型(或根据需要),然后将其存储在数组中。以下是您请求的示例代码。这样做不会出错:
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
public class TableDemo {
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
String columnNames[] = {" BIN", " NAME", " SECURITY CODE"};
String dataValues[][] = new String[15][3];
for (int i = 0; i < 15; i++) {
for (int j = 0; j < 3; j++) {
dataValues[i][j] = Integer.toString(i) + "," + Integer.toString(j);
}
}
JTable table = new JTable();
DefaultTableModel model = new DefaultTableModel(dataValues, columnNames);
table.setModel(model);
JFrame frame = new JFrame("TableDemo");
frame.setSize(new Dimension(500, 500));
frame.getContentPane().add(table);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
});
}
}
import javax.swing.*;
导入javax.swing.table.DefaultTableModel;
导入java.awt.*;
公共类桌面演示{
公共静态void main(字符串[]args){
javax.swing.SwingUtilities.invokeLater(新的Runnable(){
公开募捐{
字符串columnNames[]={“BIN”,“NAME”,“SECURITY CODE”};
字符串数据值[][]=新字符串[15][3];
对于(int i=0;i<15;i++){
对于(int j=0;j<3;j++){
数据值[i][j]=Integer.toString(i)+“,”+Integer.toString(j);
}
}
JTable table=新的JTable();
DefaultTableModel=新的DefaultTableModel(数据值、列名称);
表2.setModel(model);
JFrame=新JFrame(“TableDemo”);
框架设置尺寸(新尺寸(500500));
frame.getContentPane().add(表);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
});
}
}
如果这样做没有帮助,请发布dataValues和columnNames数组的内容。您没有显示的代码有问题:-)或者换句话说:添加一个演示问题的SSCCE。-1并投票关闭,因为您仍然没有显示SSCCE,没有问题是没有的answerable@kleopatra朋友,我刚到stackoverflow帐户。我没有足够的声誉上传图片。这就是为什么我向你解释了一个简短的代码,不是关于图像,而是一个SSCCE(你最喜欢的搜索引擎是你的朋友,以防你不知道它是什么;-),总之我解决了它。现在写我遇到了一个新问题。你能提出解决办法吗?我有20行的jtable。有时有3或4行变为空。我的用户不希望看到空行或未填充行。?我想这可以帮助你为我提供解决方案…当我在代码中使用table.setModel(model)时,文件内容没有加载到jtable,严重的怎么办?String columnNames[]={“BIN”,“NAME”,“SECURITY code”};最终字符串数据值[][]=新字符串[15][3];对于(int i=0;i@arvind,上面的代码不是SSCCE。我将答案更新为SSCCE。在定义DefaultTableModel并将其设置为jtable后,我将字符串转换为对象dataValues[],并将其设置为未加载的.txt文件,然后插入加载的d代码!?