public synchronized void run(){ if (SwingUtilities.isEventDispatchThread()) { //AWT指派线程 System.out.println("---收到数据 回来-----"); String [] columnNames={" ","是否选择","逻辑条形码","商品名称","规格","单位","销售单价","颜色","颜色代码","条形码"}; Object [][]obj={ {"1",new Boolean(false),"01001011000","商品名称商品名称","12*1","包","123.5","红色","02","121211"}, {"2",new Boolean(false),"01001011050","商品名称商品名称","12*1","包","12","粉红色","03","121211"}, {"3",new Boolean(false),"01001011040","商品名称商品名称","12*1","包","9.5","棕色","25","121211"}, };//改变 Into.jtable Into.jtable.setModel(new MyTableModel(obj,columnNames)); Into.jtable.setEnabled(false); //设置监听行 selectionMode=Into.jtable.getSelectionModel(); selectionMode.addListSelectionListener(new ListSelectionListener(){ @Override public void valueChanged(ListSelectionEvent e) { int rows=Into.jtable.getSelectedRow(); //取得选中的第几行 if(rows>-1 && e.getValueIsAdjusting()){ Boolean object=(Boolean)Into.jtable.getValueAt(rows,1);//取得单元格的值 Into.jtable.setValueAt(new Boolean(!object), rows,1); } } }); Into.jtable.setEnabled(true); }else{ SwingUtilities.invokeLater(this); }}sokcet收到数据后,执行这个线程,但是,第一次收到数据,执行一次ListSelectionListener里面的两次valueChanged,第二次收到数据,执行两次ListSelectionListener里面的四次valueChanged,收到第三次数据,执行三次ListSelectionListener里面的八次valueChanged,如此类推。。。。知道每选中Jtable一行,都执行一次ListSelectionListener里面的两次valueChanged,但是怎么会跟收到数据的次数有关?哪错了?
添加回答
举报
0/150
提交
取消