从 netbeans 中的另一种形式在表中添加行

Posted

技术标签:

【中文标题】从 netbeans 中的另一种形式在表中添加行【英文标题】:adding rows in a table from another form in netbeans 【发布时间】:2013-11-15 08:31:15 【问题描述】:

我有这两种形式:NetBeans 中的“时尚和鞋类”和“购物车”。第一个表单包含 4 个按钮。另一个包含两个表 CurrentPurchases 和 PreviousPurchases。当从第一个表单中单击任何按钮时,项目名称和价格将传输到另一个表单中的 CurrentPurchases 表。我应该使用什么代码/查询来实现这一点? 我试过这段代码,但没有用。

int dress1=100;
DefaultTableModel CurrPurchases=(DefaultTableModel)CurrentPurchases.getModel();
double price1=Double.parseDouble(Price1.getText());
int rows=CurrPurchases.getRowCount();
if(rows > 0)
    for (int i = 0; i < rows; i++) 
         CurrPurchases.removeRow(0);
    

try
    Connection connection=getConnection();
    ResultSet curprs=null;
    Statement buy1stmt=connection.createStatement();
    String Buy1Query1="Update Products set Quantity=Quantity-1 where Product_no=1;";
    String Buy1Query2="Insert into Buy values('"+Pname1.getText()+"',"+price1+");";
    buy1stmt.executeUpdate(Buy1Query1);
    buy1stmt.executeUpdate(Buy1Query2);
    dress1--;
    if(dress1==0)
        JOptionPane.showMessageDialog(null,"Sorry, This Item is Out of Stock!");
    
    new ShoppingCart().setVisible(true);
    PreparedStatement buy2stmt=connection.prepareStatement("Select * from Buy;");
    curprs=buy2stmt.executeQuery();
    if(curprs.last())
        CurrPurchases.addRow(new Object[]curprs.getString(1),curprs.getDouble(2));
    

catch(Exception ex)
    ex.printStackTrace();

finally

此行显示错误:

DefaultTableModel CurrPurchases=(DefaultTableModel)CurrentPurchases.getModel();

注意:CurrentPurchases 表是另一种形式,而不是这种形式。

【问题讨论】:

【参考方案1】:

接下来你的问题。您创建新的DefaultTableModel 并向其中添加新行,但它是本地对象,以后不再使用:

DefaultTableModel CurrentPurchases= new DefaultTableModel();
Pname=rs.getString("ProductName");
Price=rs.getString("Price");
CurrentPurchases.addRow(new Object[]Pname,Price);

您需要从表中获取模型,并在其中添加新行。例如,您有 2 种创建表和向该表添加行的方法:

    public void init() 
        targetTable = new JTable(new DefaultTableModel());
    

    public void addRow()
        ((DefaultTableModel)targetTable.getModel()).addRow(new Object[]);
    

这里targetTable 这是你的桌子(CurrentPurchases)。你需要参考那个。

阅读tutorial for JTable

【讨论】:

以上是关于从 netbeans 中的另一种形式在表中添加行的主要内容,如果未能解决你的问题,请参考以下文章

转换后将数据从一列复制到同一表中的另一列

SQL 从多行的另一张表的余额中扣除一个表中的值

根据列中的状态更改创建触发器并在表的另一列中插入值

Datatable C# - 如何根据 ID 从一个表中获取详细记录及其关联的另一表中的子记录

比较两个列并从同一个表中的另一列获取数据

MAC VBA尝试从每个工作表中剪切一个单元格并粘贴到下一个空单元格中的另一张表中