线程“AWT-EventQueue-0”中的异常java.lang.ClassCastException:javax.swing.JTable $ 1无法强制转换为javax.swing.table.DefaultTableModel

时间:2013-08-23 06:03:15

标签: java arrays swing jtable store

当我尝试将表数据复制到数组时,获得了此运行时异常。我用了

DefaultTableModel model = new DefaultTableModel(dataValues, columnNames);
jtable.setModel(model); 

我使用表的setModel方法来设置模型。问题仍然存在。请提供示例代码。

2 个答案:

答案 0 :(得分:0)

表中存储的默认值类型是对象类型。尝试首先将其转换为“String”类型(或根据需要),然后将其存储在数组中。

答案 1 :(得分:0)

以下是您请求的示例代码。这没有错误:

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);
        }
    });
  }
}

如果这没有帮助,请发布dataValues和columnNames数组的内容。