Java编程怎么把list里的数据加到JTable表格呢

要做一个图书管理系统,下面是我写的一个dao类里的获取全部图书的方法,现在我想用 BookManger类里用一个JTable表格显示,该怎么实现,网上看了很多例子看不懂啊,求大神给代码
public List getAllBook(){
List list = new ArrayList();
Connection con = null;
PreparedStatement pt = null;
ResultSet rs = null;
boolean flag = false;
con = Conn.getConnection();
try {
pt = con.prepareStatement("select * from booksm");
rs = pt.executeQuery();
while(rs.next()){
Book book = new Book();
book.setId(rs.getInt(1));
book.setISBNNum(rs.getInt(2));
book.setName(rs.getString(3));
book.setAuthor(rs.getString(4));
book.setPress(rs.getString(5));
book.setType(rs.getString(6));
book.setPrice(rs.getDouble(7));
book.setInventory(rs.getInt(8));
book.setSum(rs.getInt(9));
list.add(book);

}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;

}

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import javax.swing.table.AbstractTableModel;

public class BookTableModel extends AbstractTableModel {

  private List<Book> data = new ArrayList<Book>();

  @Override
  public int getRowCount() {
    return data.size();
  }

  @Override
  public int getColumnCount() {
    //根据实际情况返回列数
    return 3;
  }

  @Override
  public String getColumnName(int column) {
    //根据实际情况返回列名
    if (column == 0)
      return "ID";
    else if (column == 1)
      return "ISBNNum";
    return "Name";
  }

  @Override
  public Object getValueAt(int rowIndex, int columnIndex) {
    Book book = data.get(rowIndex);
    if (columnIndex == 0)
      return book.getId();
    else if (columnIndex == 1)
      return book.getISBNNum();
    return book.getName();
  }

  public void setData(List<Student> data) {
    if (data == null)
      throw new IllegalArgumentException("参数data不能为null。");

    this.data = data;

    fireTableDataChanged();
  }
}

    BookTableModel tableModel = new BookTableModel ();
    JTable table = new JTable(tableModel);

温馨提示:内容为网友见解,仅供参考
无其他回答

Java编程怎么把list里的数据加到JTable表格呢
import java.util.ArrayList;import java.util.Arrays;import java.util.List;import javax.swing.table.AbstractTableModel;public class BookTableModel extends AbstractTableModel { private List<Book> data = new ArrayList<Book>(); @Override public int getRowCount() { return data.size(...

怎么把list中的数据显示在jtable中,并且实现换行(因为list中的数据正...
大概思想就是:单元格里面渲染JScrollPane,其上有个JTextArea,可以实现换行。具体例子如下:***\/import java.awt.Component;import java.util.ArrayList;import java.util.EventObject;import javax.swing.JFrame;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.JTextArea;import...

如何用ArrayList存储从数据库里取出的字段写入JTable中
private JTable createTable() { JTable table = new JTable();String[] tableHeads = new String[]{"姓名","年龄","是否通过"};DefaultTableModel dtm = (DefaultTableModel)table.getModel();dtm.setColumnIdentifiers(tableHeads);\/**ArrayList 数据**\/ List arraylist = new ArrayList();ar...

...数据保存在ArrayList中,如果将他显示在Jtable表格中,谢谢
假定你的ArrayList中存放的javabean类型为:Bean ,名为list JTable 的数据为Object data[][]则可以这样写:for(int row=0; row<list.size(); row++){ data[row][0] = bean.getXX();data[row][1] = bean.getXX();...}

如何在JTable中添加JList,请写个例子
isSelected, hasFocus, row, column);} } 然后把这个设置为整个table的renderer 以上做法可以参考core java 问题在于,你的JList一定要保证足够的表格高度来显示,因为JTable的机制是调用CellRenderer返回的组件的paint方法来绘制,而不是真的放一个组件上去,所以你的数据太多的话是没有办法显示的 ...

JAVA点击Jtable表格如何将点击的那一行数据分别输出出来
方法一:ListSelectionListener 来获取用户在表格里选中的数据是最方便和最优的.因为: 支持单选, 也支持多行, 支持键盘上下移动进行选择 方法二: MouseListener 当鼠标点击某行数据后,输出该数据 ,可以实现 不推荐使用MouseListener来获取表格选中数据:1 不够灵敏, 偶尔会失效, 比如刚打开窗口后 ,有时候...

怎么把数据库里的数据导入在eclipse里做的界面中的表格里
用java语言的话,jdbc连接到数据库,通过sql语句获得cell的值。用POI库来生成一个excel文件,把获得cell值写到excel的相应单元格内(或者用csvtokenizer这个库,生成CSV文件,也可以)

用java如何将查询的结果在table中显示
利用Java开发数据库应用系统时,经常需要在用户界面上显示查询结果。由于SUN公司提供的JDK1.x开发工具包不是可视化的集成开发环境(IDE),不能象Delphi、VB那样方便地把查询结果在DBGrid等表格中显示出来。因此,只能靠自己编写代码来实现。在实际应用中,我们可以利用Vector、JTable、AbstractTableModel等三个...

java JList编辑单元格
JList 我只知道点击左键能进入编辑的方法,右键怎样实现我还真想不出来,要不换成只有一列的Jtalbe吧,给重命名的菜单项添加一个事件,触发事件然后用 editCellAt()方法进入编辑 不好意思,我查了一下文档,发现JList竟然没有编辑器,以前一直以为跟JTable差不多,所以你只能改用单列的JTable了 ...

怎么取JTable表里的数据
jtable table;table.setSelecteionMode(ListSelectionModel.SINGLE_SELECTION)选中要选择的行 取数据,以第一列为例 int sel = table.getSelectedRow(); \/\/获得所选的行的行号,即第几行 if(table.getSelectedRow() != -1) { \/\/-1为未选中是的默认值 String str = (Stirng)table.getValueA...

相似回答