这两天一直在研究JTable的用法。我的想法主要是最开始想能够创建一张表,空表的列名已经定义好,然后再动态的将每行的数据加入到表中。而且该表格应该是带有JScrollPane滚动条的。下面是我写的核心代码:
首先,创建一张表格:
JTable table ;
DefaultTableModel dtm = new DefaultTableModel();
TableColumn c1 = new TableColumn() ;
TableColumn c2 = new TableColumn() ;
.....TableColumn cn = new TableColumn() ;
String[] columnNames = {"1列","2列",......"n列"};
dtm.setColumnIdentifiers(columnNames);
table = new JTable(dtm) ;
到上面的代码位置,JTable的列已经设置好了,空表格也建立好了
下面我们来给table添加滚动条:
JScrollPane p = new JScrollPanel((table,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED) ;
p.setPreferredSize(new Dimension(400,300)); //设置JScrollPane的大小
最后再来给表格加入数据,我假设行的数据是一个shoes对象,而且所有的对象都存放在一个vector里面:
dtm.setRowCount(shoes.size()); //将表格的行数设置为shoes对象的数目
for(int i = 0 ; i < shoes.size() ; i++)
{
table.setValueAt(shoes.get(i).getShoe_id(), i, 0);
table.setValueAt(shoes.get(i).getShoe_style(), i, 1);
table.setValueAt(shoes.get(i).getShoe_size(), i, 2);
table.setValueAt(shoes.get(i).getShoe_amount(), i, 3);
table.setValueAt(shoes.get(i).getShoe_price(), i, 4);
table.setValueAt(shoes.get(i).getShoe_inDate(), i, 5);
}//其中i表示第几行,0~5表示第几列