public static List selectBookList(String sql){
List list = new ArrayList();
ResultSet rs = BaseDao.executeQuery(sql);
Book book = null;
try {
while (rs.next()) {
book = new Book();
book.setId(ChangeDao.ISOToGBK(rs.getString("id")));
book.setType(ChangeDao.ISOToGBK(rs.getString("type")));
book.setName(ChangeDao.ISOToGBK(rs.getString("name")));
book.setAuthor(ChangeDao.ISOToGBK(rs.getString("author")));
book.setTranslator(ChangeDao.ISOToGBK(rs
.getString("translator")));
book.setPublisher(ChangeDao.ISOToGBK(rs.getString("publisher")));
book.setPublish_time(rs.getDate("publish_time"));
book.setPrice(rs.getDouble("price"));
book.setStock(rs.getInt("stock"));
list.add(book);

}
} catch (Exception e) {
e.printStackTrace();
}
BaseDao.close();

return list;
}
怎么把list添加到JTable

解决方案 »

  1.   

    table好像需要vector,有个事表头,另外一作为数据传入。去看看组件的api
      

  2.   

    得把数据转成:TableModel 然后设置到JTable中去,才能使用。可以自行实现该接口,或者以 DefaultTableModel 为基类来实现。
      

  3.   

      JTable table = new JTable();
      String[] tableHeads = new String[]{"ID","Name","Type","Author","Translator",
      "Publisher","Publish_time","Price","Stock"};
      DefaultTableModel dtm = (DefaultTableModel)table.getModel();
      dtm.setColumnIdentifiers(tableHeads);  List<Book> list=new ArrayList<Book>(); 
      list=BookDao.selectBookList("select * from book");
      for(int i=0;i<list.size();i++) 
      { 
          Object[][]rowData={{list.get(i).getId()},{list.get(i).getName()},
          {list.get(i).getType()},{list.get(i).getAuthor()},
          {list.get(i).getTranslator()},{list.get(i).getPublisher()},
          {list.get(i).getPublish_time()},{list.get(i).getPrice()},
          {list.get(i).getStock()}};
          dtm.addRow(rowData);

    这样,结果各行里都是Ljava.lang.Object 类型转换错误,
    大师,这是嘛意思? 
      

  4.   

    addRow 每次只能加一行数据。Object[] rowData={list.get(i).getId(), list.get(i).getName(), ..., list.get(i).getStock()};
    dtm.addRow(rowData);