本帖最后由 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) {