【发布时间】:2015-12-13 21:53:15
【问题描述】:
我在从 DB 获取值的方法中创建了一个 OrderModel 对象,并将其设置为 JTable。我想知道如何使用此代码将此创建的对象设置为JTable:
tblOrderItems.setModel(DbUtils.resultSetToTableModel());
这是我的代码:
private void tblOrderListMouseClicked(java.awt.event.MouseEvent evt) {
int raw = tblOrderList.getSelectedRow();
OrderModel or;
String item;
Double qty,amount,total;
ArrayList<OrderModel> arrOrder = new ArrayList<OrderModel>();
String selectedRaw = tblOrderList.getModel().getValueAt(raw, 0).toString();
String sql = "select item,qty,amount from orderdetails where orderid='"+selectedRaw+"'";
con = new DBconnector().connect();
try {
ps = con.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
if(rs.next()){
or = new OrderModel();
or.setItem(rs.getString("item"));
or.setQty(rs.getDouble("qty"));
or.setAmount(rs.getDouble("amount"));
arrOrder.add(or);
DefaultTableModel tblModel = new DefaultTableModel();
// wanted to set ArrayList to table+
tblOrderItems.setModel(DbUtils.resultSetToTableModel());
}
} catch (Exception e) {
e.printStackTrace();
}
}
【问题讨论】:
-
使您的
OrderModel扩展AbstractTableModel并在setModel方法中使用or作为参数 -
因为每个
OrderModel都是一行,所以你需要一个TableModel实现来管理这些 -
@MadProgrammer 是正确的。您必须创建一个表模型类,然后将行添加到该表模型并将 jtable 的模型设置为该表模型
-
我没有任何抽象类。我们不能在这段代码上做吗?
-
什么是
DbUtils?它是一个自定义类吗?如果是,则发布方法的代码resultSetToTableModel()
标签: java swing jdbc arraylist jtable