varias una sirve seleccionar seleccionada que pasar para otro obtener los getselectedrow formulario filas fila desde datos como codigo agregar java swing jtable

java - una - Copie los datos seleccionados de un jtable en frame1 a otra tabla en frame2



seleccionar una fila de un jtable desde codigo (1)

Tengo un JTable2 en frame1 y JTable1 en frame2. Quiero copiar y enviar datos seleccionados de table2 a table1. cómo lo hago ?

private void jButton3MouseClicked(java.awt.event.MouseEvent evt) { String sql = "select * from table1 where Bill_No like ''"+jTextField2.getText()+"''"; try{ pst = conn.prepareStatement(sql); rs = pst.executeQuery(); jTable2.setModel(DbUtils.resultSetToTableModel(rs)); JFrame NewJFrame2 = new NewJFrame2(); NewJFrame2.setVisible(true); int i=0; while(rs.next()) { Object bno = rs.getString("Bill No"); Object bamount = rs.getString("Bill Amount"); Object btds = rs.getString("TDS"); Object btax = rs.getString("Tax"); Object bpayable = rs.getString("Payable"); jTable1.getModel().setValueAt(bno,i, 0 ); jTable1.getModel().setValueAt(bamount, i, 1); jTable1.getModel().setValueAt(btds, i, 2); jTable1.getModel().setValueAt(btax, i, 3); jTable1.getModel().setValueAt(bpayable, i, 4); System.out.println(i); i++; } } catch(Exception e){ JOptionPane.showMessageDialog(null, e); } }


Comience por echar un vistazo a Cómo usar las tablas .

Si desea "copiar" los datos seleccionados, necesitará saber qué filas están seleccionadas, consulte JTable#getSelectedRows .

Te estás haciendo la vida difícil usando DbUtils ya que has perdido la capacidad de simplemente transferir los objetos de un modelo a otro.

La idea básica sería copiar los valores de la tabla original en un nuevo TableModel tabla y pasarlo a la segunda ventana, algo así como

TableModel original = table.getModel(); DefaultTableModel model = new DefaultTableModel(table.getSelectedRowCount(), original.getColumnCount()); for (int col = 0; col < original.getColumnCount(); col++) { model.addColumn(original.getColumnName(col)); } int[] selectedRows = table.getSelectedRows(); for (int targetRow = 0; targetRow < selectedRows.length; targetRow++) { int row = selectedRows[targetRow]; int modelRow = table.convertRowIndexToModel(row); for (int col = 0; col < original.getColumnCount(); col++) { model.setValueAt(original.getValueAt(modelRow, col), targetRow, col); } }

por ejemplo. Ahora solo necesita pasar el model a la segunda ventana y aplicarlo a la JTable contenida en