日期:2014-05-20  浏览次数:20788 次

怎么把数据库表的内容传入JTable
本帖最后由 albertwmm 于 2012-11-14 09:49:17 编辑 数据库中写了张表 姓名,学号,班级,性别,地址

然后想把这表的内容传入JTable , 并且想对学生中的某个人点击  弹出一个专门的JFrame 来显示这个学生的其他信息。

下面是我写的。。 为什么打开来是空白呢 = =  。
               还有如何设置这个学生列的监听呢


public class XSTable extends JFrame{

/**
 * 
 */
private static final long serialVersionUID = 4681526555438628510L;

public static void main(String[] args) {

new XSTable();
}


Connection conn = null ;
Statement st = null ;
ResultSet rs = null;

public XSTable(){

JTable table=new JTable();

DefaultTableModel model = (DefaultTableModel)table.getModel();

final String[][] data={ };

try {
conn =JdbcUtils.getConnection();  //我写了工具类,注册链接释放的代码
st = conn.createStatement();
rs = st.executeQuery("select*from CanKao_table");

while(rs.next()){

sop.Sop("连接成功"); //工具类中的输出控制台

for(int i=1;i<=model.getRowCount();i++){
data[0][1] = "姓名";
data[0][2] = "学号";
data[0][3] = "性别";
data[0][4] = "班级";
data[0][5] = "地址";
data[i][1] = rs.getString(1).trim();
data[i][2] = rs.getString(2).trim();
data[i][3] = rs.getString(3).trim();
data[i][4] = rs.getString(4).trim();
data[i][5] = rs.getString(5).trim();

sop.Sop("连接成功");
}
}

catch (Exception e) {
e.printStackTrace();
}
finally{
JdbcUtils.free(rs, st, conn);
}

table.setModel(model);

table.setPreferredScrollableViewportSize(new Dimension(500,500));

JScrollPane scrollPane=new JScrollPane(table); 
this.getContentPane().add(scrollPane,BorderLayout.CENTER);

this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});

this.pack();
this.setVisible(true);
}

}






各位前辈帮看看阿 
------最佳解决方案--------------------
数组首先的初始化,还有,最好使用vector来存储你查出来的数据吗,,然后把它夹在表格上显示。
------其他解决方案--------------------
你这不是空指针异常嘛,估计是你哪个变量忘了初始化了。报异常的时候你至少得看看哪一行报错,这样才好找错误点啊。你找到那一行,把每一个元素都system.out.println();一下,就知道哪个为空。

看你的思路是想把所有的用户都查询出来都显示在页面上面是吧?
你可以申明一个BUTTON组,然后在table的最后一栏里面添加一个按钮,然后对这个按钮添加监听就行了。
你的这个思路实现起来应该不会太难,当然,现在这种功能一般都使用SSH来实现了。
但是java的页面功能是很简单的,不是很好设置,如果从数据库提取的数据太多的话,一个页面显示不了怎么弄?分栏么?这又得麻烦一整子。
不过做这个还是挺有趣的,至少图形界面是比单纯的代码有意思多了。
今天有点晚了,以后如果代码中如果有错误,当然记得附上代码和报错的行数,或者思路上有问题可以回下贴,我有空帮你看看。

------其他解决方案--------------------
  
 public static void main(String[] args) throws Exception{         new XWTable();     }

改成
 public static void main(String[] args){
       try {
new XWTable();
} catch (Exception e) {