Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何修复我为jTable所做的循环?_Java_Swing_For Loop_Jtable - Fatal编程技术网

Java 如何修复我为jTable所做的循环?

Java 如何修复我为jTable所做的循环?,java,swing,for-loop,jtable,Java,Swing,For Loop,Jtable,我刚刚做了一个按钮,添加了jComboBox中的产品、jTextField中的数量以及jTable中的产品价格 我希望我的按钮添加产品,如果它已经在jTable中,它只会将我们想要的数量添加到正确的列中。它适用于我的第一个产品,但不适用于其他产品 String cp = jComboBoxProduit.getSelectedItem().toString(); //CategorieCombo is a class that gives us the id, value or

我刚刚做了一个按钮,添加了jComboBox中的产品、jTextField中的数量以及jTable中的产品价格

我希望我的按钮添加产品,如果它已经在jTable中,它只会将我们想要的数量添加到正确的列中。它适用于我的第一个产品,但不适用于其他产品

    String cp = jComboBoxProduit.getSelectedItem().toString();
    //CategorieCombo is a class that gives us the id, value or price of a row in a SQL table
    CategorieCombo pp = (CategorieCombo) jComboBoxProduit.getSelectedItem();
    DefaultTableModel leModel = (DefaultTableModel) jTable4.getModel();
    

            if(jTable4.getRowCount() != 0)
            {   
                for (int i = 0; i < jTable4.getRowCount(); i++)
                {
                if ((String)jTable4.getValueAt(i, 0) != cp)
                {
                    leModel.addRow(new Object[]{cp, jTextFieldQuantity.getText(), pp.getPrix()});
                }
                else {
                int qte = Integer.valueOf(jTable4.getValueAt(i,1).toString());
                qte = qte + Integer.valueOf(jTextFieldQuantity.getText());
                jTable4.setValueAt(qte, i, 1);
                }
                }
            }        
            else         
            {
            leModel.addRow(new Object[]{cp, jTextFieldQuantity.getText(), pp.getPrice()});
            }
它在for循环中,所以可能每次我的表中有一行时它都会执行,但我希望我能只执行这一行一次


我希望我已经够清楚了,谢谢你能帮我找到答案

不要使用“!=”进行对象比较。而是使用
equals(…)
方法。而且,通常做一个积极意义上的测试比较容易。那就是如果(真的)有别的事,有别的事。提问时要使用恰当的语言。谢谢。它帮助我看得更清楚,但不幸的是问题仍然存在。谢谢你帮助我!所以也许它…-别猜它在干什么。添加调试代码。显示代码,以便您可以知道何时执行if或else语句。显示表格中的值和组合框中的值,以确保比较的对象正确。这就是编程的意义所在。我们无法告诉您答案,因为1)代码不可执行,2)我们无法访问您的数据。好的,我会这样做,谢谢。我是一个编程初学者,所以我仍然有一些问题,在解决自己的问题。
leModel.addRow(new Object[]{cp, jTextFieldQuantity.getText(), pp.getPrix()});