首先假设两个JTable,他们为table1与table2
假设从table1取值放到table2中
1、获得table1的选中行
int index = table1.getSelectedRow();
2、获得table1中列的总个数:
int column = table1.getColumnCount();
3、取出表格中index行中的值,用集合保存!
(1)创建一个保存的集合
Vector<Vector<Object>> vector =new Vector<Vector<Object>>();
(2) 再创建一个集合,用于加入到第一个集合
Vector<Object> object =new Vector<Object>();
(3) 将index行的所有数据取出放入第二个集合中
for(int n= 0; n < column; n ++){
object.add(table1.getValueAt(index,n));
}
(4)将第二集合中的数据加入到第一个集合中: vector.add(object);
4、创建table2的列名,并用一个集合表示,!
(1)创建一个集合,用于创建列名
Vector<Object> object1 = new Vector<Object>();
(2) 为列名赋值,,,,在这里就省略了,具体的名视情况而定!
5、将取出的值加入到table2中:
(1)取得table2的模板
DefaultTableModel model = (DefaultTableModel)table2.getModel();
(2)为模板添加内容:
model.setDataVector(vector, object1);
(3)将模板添加到table2中,
table2.setModel(model);
下面贴出我自己的一端代码:
/*
* @小笨猪
*/
//声明两个可变的对象数组:
Vector CellsVector = new Vector();
Vector TitleVector = new Vector();
//声明元素:
int[] index;
int column;
//设置表格的表头
TitleVector.add("已选部门");
//初始化表格
JTable ShowTable1 = new JTable();
JTable ShowTable2 = new JTable(CellsVector, TitleVector);
index = ShowTable1.getSelectedRows();//获取选中行
//column = ShowTable1.getColumnCount();//获取列数
//创建一个保存的集合,用来存放选中的元素
Vector<Object> object =new Vector<Object>();
//获取选中值,并赋值到存放的数组;
for(int rowindex : ShowTable1.getSelectedRows()){
Object obj=ShowTable1.getValueAt(rowindex,2);//获取选中行第3列的内容
object.add(obj);//将获取的数据放到存储的集合中
}
for (int i = 0; i < object.size(); i++) {
Vector v = new Vector();//存储数据的数组
v.add(object.get(i));
//判断一下要添加的元素是否已经存在,若存在则不进行添加
//contains(v):如果此向量包含指定的v元素,则返回 true。
if(!CellsVector.contains(v)){
CellsVector.add(v);
}
}
ShowTable2.updateUI();//此方法为更新第二个表格