-2

我做了空表:

String columnNames[] = {"br", "artikal", "cena", "kolicina","ukupno" };  
String dataValues[][] =new String[10][5];  
DefaultTableModel tableModel=new DefaultTableModel(dataValues, columnNames);

我想通过循环和if条件从第一行到最后一行按顺序填充一列:

if ((((JButton)e.getSource()).getText()).equals(name.getName())){

    for (int i=0;i<10;i++){

        String products= (String) bill.tableModel.getValueAt(i, 1);
        String p=Double.toString(name.getPrice());

        if(products.equals(""))                                                                                                  
            bill.tableModel.setValueAt(name.getName(),i, 1);
            bill.tableModel.setValueAt(p,i, 2);
            break;   
    }
}

当我单击按钮时,没有显示任何内容,但是当我删除 if 条件if (products.equals("")) 它正在工作时,而是在为空的列中填充单元格时,它再次将文本设置为列中的第一个单元格。

我试过 了if ( dataValues[i][1].equals("null"))if (products.equals("null"))它什么也没显示。当我System.out.print((String) bill.tableModel.getValueAt(0, 1))在控制台上显示“null”时。

还有其他方法可以填充列中的单元格吗?

4

2 回答 2

0

您的代码可能应该是:

if(products!=null && products.equals("")) {
    bill.tableModel.setValueAt(name.getName(),i, 1);
    bill.tableModel.setValueAt(p,i, 2);
}

我假设 if 语句的主体周围有花括号,因为我不明白单击按钮时您要做什么......

于 2013-02-27T16:49:03.233 回答
0

这工作正常:

 if (e.getSource()instanceof JButton){

                  for (Product name:Main.manu){


                        if ((((JButton)e.getSource()).getText()).equals(name.getName())){


                            for (int i=0;i<10;i++){

                                String products= (String) bill.tableModel.getValueAt(i, 1);
                                String p=Double.toString(name.getPrice());

                                if (products!=null)  
                                continue;
                                {                                                                                                

                                    bill.tableModel.setValueAt(name.getName(),i, 1);
                                    bill.tableModel.setValueAt(p,i, 2);


                                break;   }


                        }

                      }
                 }                
                }
            }
于 2013-02-27T17:03:06.890 回答