【发布时间】:2013-09-30 11:42:31
【问题描述】:
伙计们?帮我解决我的问题。我想要一个使用数据库中的两个表填充数据的 jtable。我的 Apple 类中有两种方法..
类苹果;
public void table(){
try{
String id = num.getText();
rs = stat.executeQuery("SELECT * FROM payments;");
Vector<String> header = new Vector<String>();
header.add("PAYMENT");
header.add("AMOUNT");
header.add("MODIFIER");
header.add("DATE MODIFIED");
Vector<Vector<Object>> data = new Vector<Vector<Object>>();
while(rs.next()) {
Vector<Object> row = new Vector<Object>();
row.add(rs.getString("description"));
row.add(rs.getString("amount"));
row.add(rs.getString("remarks"));
row.add(rs.getString("date"));
data.add(row);
} // loop
dtm.setDataVector(data , header);
JScrollPane scrollPane = new JScrollPane(table);
scrollPane.setBounds(0,0,490,250);
panel.add(scrollPane);
validate();
}catch(Exception e){
System.out.println("Error in table: "+e);
}//try and catch
}//tble
这是 Apple 类中的第一个方法,rs = stat.executeQuery("SELECT * FROM payments;"); 是我要检索数据并插入到我的 jtable 中的第一个数据库表。在它插入到我的 jtable 中之后,我有另一个方法可以从另一个数据库中检索数据表..
public void table(){
try{
String id = num.getText();
rs = stat.executeQuery("SELECT * FROM record where idNum ='"+id+"';");
while(rs.next()){
Vector<Object> row = new Vector<Object>();
row.add(rs.getString("description"));
row.add(rs.getString("amount"));
row.add(rs.getString("remarks"));
row.add(rs.getString("date"));
data.add(row);
} // while
dtm.setDataVector(data , header);
JScrollPane scrollPane = new JScrollPane(table);
scrollPane.setBounds(0,0,490,250);
panel.add(scrollPane);
validate();
}catch(Exception e){
System.out.println("Error in table: "+e);
}//try and catch
}//tble
这是 Apple 类中的第二个方法。我希望将其数据添加到我的 jtable 中,而不是删除之前插入 jtable 中的数据。对不起,我的英语语法很差。希望你明白我的意思..
【问题讨论】:
-
1a。不要在 try-catch 中创建任何 GUI 对象(-我最终错过了 ResultSet.close() 等),因为在第一个异常中,一切都消失了,1b。之前准备那些对象,1c。最好作为局部变量,2. 不要使用 NullLayout,3a。这种形式的问题,这个描述和代码被剪断在这里无法回答,3b。为了获得更好的帮助,请尽快发布SSCCE,简短,可运行,可编译,3c。在 JTable(它的 XxxTableModel)而不是 JDBC 的 loca 变量中具有硬编码值
标签: java database swing jtable tablemodel