JTable-condition if((table.getValueAt(0,1))。equals(“”))显示错误

时间:2013-02-27 16:31:34

标签: java swing if-statement jtable jbutton

我做了空桌子:

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

我希望按顺序从第一行到最后一行按顺序填充一列,如果条件:

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 (products.equals(""))时它正在工作,而是填充空白列中的单元格,它再次将文本设置为列中的第一个单元格。

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

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

2 个答案:

答案 0 :(得分:0)

您的代码应该是:

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

我假设if语句的主体周围有花括号,因为我没有理解当你点击按钮时你想要做什么....

答案 1 :(得分: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;   }


                        }

                      }
                 }                
                }
            }