报错原代码:
table = new JTable();
table.setFont(new Font("宋体", Font.PLAIN, 25));
table.setRowHeight(50);// 设置表格行宽
table.setAutoResizeMode(JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS);
for (int i = 0; i < 5; i++) {
TableColumn column = table.getColumnModel().getColumn(i);
if (i == 0) {
column.setPreferredWidth(20);
}
}
scrollPane.setViewportView(table);
DefaultTableModel tableModel=(DefaultTableModel) table.getModel(); //获得表格模型
tableModel.setRowCount(0); //清空表格中的数据
tableModel.setColumnIdentifiers(new Object[]{"书名","出版社","出版时间","丛书类别","定价"}); //设置表头
tableModel.addRow(new Object[]{"Java从入门到精通(第2版)","清华大学出版社","2010-07-01","软件工程师入门丛书","59.8元"}); //增加列
tableModel.addRow(new Object[]{"PHP从入门到精通(第2版)","清华大学出版社","2010-07-01","软件工程师入门丛书","69.8元"});
tableModel.addRow(new Object[]{"Visual Basic从入门到精通(第2版)","清华大学出版社","2010-07-01","软件工程师入门丛书","69.8元"});
tableModel.addRow(new Object[]{"Visual C++从入门到精通(第2版)","清华大学出版社","2010-07-01","软件工程师入门丛书","69.8元" });
原因:数组越界,列数为0
改正:在为表格添加数据后再获取列