为什么总报这样的错误GetTableFromDB error:java.lang.ArrayIndexOutOfBoundsException: 12
我的用Jtable来显示从数据库读的数据的一段代码 如下但运行后窗口就什么都没有只报这样的错误GetTableFromDB error:java.lang.ArrayIndexOutOfBoundsException: 12
package dljm.main;
import java.util.*;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;
import javax.swing.DefaultCellEditor;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableColumnModel;
import java.sql.*;
import java.awt.event.*;
public class kpTable extends JFrame {
private JPanel jPanel1 = new JPanel();
private JScrollPane jScrollPane1;
private JTable jTable;
public kpTable() {
try {
GetTableFromDb gtfd = new GetTableFromDb();
jTable = gtfd.getTable();
jScrollPane1 = new JScrollPane(jTable);
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
private void jbInit() throws Exception {
this.setBounds(100, 200, 830, 730);
this.getContentPane().add(jPanel1, BorderLayout.CENTER);
jPanel1.add(jScrollPane1, BorderLayout.CENTER);
}
///
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
System.exit(0);
}
}
///
public static void main(String[] args) {
kpTable st = new kpTable();
st.show();
}
///
}
/**
* 描述:通过查询数据库,取得显示结果数据的数据库表的JScrollPane组件显示
* */
class GetTableFromDb{
public GetTableFromDb() {
try {
/*// 登陆数据库OMT,使用jdbc-odbc桥
Connection con;
Statement sta;
ResultSet rs;
String driver;
String url;
String user;
String pwd;
//*/
String url= "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=rm";
String user="sa";//数据库用户密码
String passwd="123456";//口令
String database = "rm";
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");//驱动申明
Connection con = DriverManager.getConnection(url,user,passwd);//建立链接
con.setCatalog(database);//确定目标数据库
Statement stmt = con.createStatement();
String sqlCode = "SELECT 考评人ID, 考评人姓名, 员工姓名,员工ID,客户为本,沟通能力 ,团队协作,注重成效,创新精神,变革发展,平均分,任务与职责 FROM kpInfo";
ResultSet rs = stmt.executeQuery(sqlCode );
Vector vect = new Vector();//用于存放数据记录
vect.removeAllElements();//初始化向量对象
while(rs.next()) {//依次读取数据结果集
Vector rec_vector=new Vector();//从结果集中取数据放入向量rec_vector中
rec_vector.addElement(rs.getString(1));
rec_vector.addElement(rs.getString(2));
rec_vector.addElement(rs.getString(3));
rec_vector.addElement(rs.getString(4));
rec_vector.addElement(rs.getString(5));
rec_vector.addElement(rs.getString(6));
rec_vector.addElement(rs.getString(7));
rec_vector.addElement(rs.getString(8));
rec_vector.addElement(rs.getString(9));
rec_vector.addElement(rs.getString(10));
rec_vector.addElement(rs.getString(11));
rec_vector.addElement(rs.getString(12));
//rec_vector.addElement(rs.getString(13));
vect.addElement(rec_vector);//向量rec_vector加入向量vect中
}
//表列标题
String[] titleStr = {"考评人ID","考评人姓名","员工姓名","员工ID","客户为本","沟通能力","团队协作","注重成效","创新精神","变革发展","平均分","任务与职责" };//表列标题设定
Vector title = new Vector();//用于存放表列标题
title.removeAllElements();
for(int i=0;i<=titleStr.length+1;i++) {
title.addElement(titleStr[i]);
}
//生成表
jTable = new JTable(vect,title);
//释放资源
rs.close();
stmt.close();
con.close();
}
catch(Exception e) {
System.out.println("GetTableFromDB error:" + e);
}
}
public JTable getTable() {
return jTable;
}
private JTable jTable;//e生成的最终表单
}