java表格获取选中行的内容,并赋值到另一表格中(赋代码)

首先假设两个JTable,他们为table1与table2
假设从table1取值放到table2中
1、获得table1的选中行

 int index = table1.getSelectedRow();

2、获得table1中列的总个数:

int column = table1.getColumnCount();

3、取出表格中index行中的值,用集合保存!
(1)创建一个保存的集合

VectorObject>> vector =new VectorObject>>();

(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 =new Vector();
       //获取选中值,并赋值到存放的数组;
       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();//此方法为更新第二个表格 
  

                            
                        
                    
                    
                    

你可能感兴趣的:(java)