JTable jt=new JTable();
 JScrollPane jp=new JScrollPane(jt);
 TableModel atm = new  AbstractTableModel(){
/**
 * 
 */
private static final long serialVersionUID = 1L; public int getRowCount() {
return v.size();
} public int getColumnCount() {
return title.length;
}
public String getColumnName(int i){
return title[i];

} public Object getValueAt(int i, int j) {
if(!v.isEmpty())
return ((Vector)v.elementAt(i)).elementAt(j);
else
return null;
}

};

jf.add(jp);
jf.show();
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root", "123456");
String sql="select * from info";
Statement st=con.createStatement(); 
ResultSet rs=st.executeQuery(sql);
while(rs.next()){
Vector ve=new Vector();
/*String name=rs.getString("name");
String pass=rs.getString("password");
String age=rs.getString("age");
String sex=rs.getString("sex");*/
ve.addElement(new String((rs.getString("name").getBytes("ISO8859_1"))));
ve.addElement(new String((rs.getString("age").getBytes("ISO8859_1"))));
ve.addElement(new String((rs.getString("sex").getBytes("ISO8859_1"))));
ve.addElement(new String((rs.getString("xueli").getBytes("ISO8859_1"))));
v.addElement(ve);
jt.setModel(atm);

}
rs.close();
}
catch(Exception e){
System.out.println("数据库没连上");
}

}


});

解决方案 »

  1.   

    你这里的
    private void createTableModel() {
    defaultModel.setColumnCount(0); // 清空表格模板内所有的列
    defaultModel.setRowCount(0); // 清空表格模板内所有的行
    }这里的defaultModel.setColumnCount(0);明显是将所有的列清空掉,所以即使你有数据也不能显示到表格中去,
    因为你没有列,哪来的行,所以只要将defaultModel.setColumnCount(0); 这句去掉就可以了,或者可以将createTableModel() 这个方法放到你defaultModel.addColumn("编号");前面也是可以的