将选定的数据从第 1 帧中的 jtable 复制到第 2 帧中的另一个表

2024-02-26

我在frame1中有一个JTable2,在frame2中有一个JTable1。我想将选定的数据从 table2 复制并发送到 table1。我该怎么做 ?

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);
        }
    }             

首先看一下如何使用表格 http://docs.oracle.com/javase/tutorial/uiswing/components/table.html.

如果您想“复制”所选数据,那么您将需要知道选择了哪些行,请参阅JTable#getSelectedRows http://docs.oracle.com/javase/7/docs/api/javax/swing/JTable.html#getSelectedRows().

你正在让自己的生活变得困难DbUtils因为您已经失去了将对象从一个模型转移到另一个模型的能力。

基本思想是将原始表中的值复制到新表中TableModel并将其传递到第二个窗口,例如

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);
    }
}

例如。现在你只需要通过model到第二个窗口并将其应用到JTable包含在

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将选定的数据从第 1 帧中的 jtable 复制到第 2 帧中的另一个表 的相关文章

随机推荐