当前位置:  开发笔记 > 编程语言 > 正文

Java错误:javax.swing.JTable $ 1无法强制转换为javax.swing.table.DefaultTableModel

如何解决《Java错误:javax.swing.JTable$1无法强制转换为javax.swing.table.DefaultTableModel》经验,为你挑选了1个好方法。

我正在试图做的是我创建JTable的新实例中JPanel,并JFrame和我在添加在表中的行得到的错误:

Object[] column = {"id", "title"};
Object[][] data = {};
JTable toDoTable = new JTable(data, column) {
  public Component prepareRenderer(TableCellRenderer renderer, int rowIndex,
      int columnIndex) {
       if(columnIndex == 1) {
          setFont(new Font("Arial", Font.BOLD, 12));
       } else {
           setFont(new Font("Arial", Font.ITALIC, 12));
       }

         return super.prepareRenderer(renderer, rowIndex, columnIndex);
  }
};


JScrollPane jpane = new JScrollPane(toDoTable);
JPanel panel = new JPanel();
JFrame frame = new JFrame();
frame.setSize(new Dimension(1100, 408));
frame.setTitle("JTable Font Setting Example");
panel.add(jpane);
frame.add(new JScrollPane(panel));
frame.setVisible(true);

// Add rows in the Table
DefaultTableModel model = (DefaultTableModel)toDoTable.getModel();
ConnectMSSQLServer connServer = new ConnectMSSQLServer();
ResultSet rs = connServer.dbConnect();
  try
   {
      while (rs.next()) {
          String id = rs.getString("id");
          String title = rs.getString("title");
          model.addRow(new Object[]{id, title});
      }
    }
    catch(Exception e)
    {

    }

在表中的添加行中发生错误



1> Andy Turner..:

这里的问题是你正在调用JTable(Object[][], Object[])构造函数.如果你查看该链接中的源代码,你可以看到它在JTable(TableModel)内部调用构造函数,构造了一个匿名实例AbstractTableModel,该getModel()方法返回的是- 这不能转换为DefaultTableModel.

但是:无论如何,你在这里尝试做什么都行不通.你是说数据的行由零元素数组表示:

Object[][] data = {};

您将无法向此添加行,因为您无法在构造后调整数组大小.

而不是这个,你应该构造一个显式DefaultTableModel:

TableModel tableModel = new DefaultTableModel(column, rowCount);

然后用它来构造JTable:

JTable toDoTable = new JTable(tableModel) { ... }

我根本不熟悉swing,但它看起来像是DefaultTableModelVector行数据支持,所以你不需要知道rowCount前面的确切值.

推荐阅读
落单鸟人
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有