0

我的程序应该模拟一个购物车。其中一个功能是从文本文档中读取商品数据,并将价格、商品 ID 和商品名称等数据存储在数组中。一旦我尝试从下面的“myClass”类访问数组内容,函数中添加的数组内容似乎消失了。我想知道是否有人可以帮助我弄清楚使用 idArray 的正确方法是什么,它在函数中添加了元素,在 myClass 中,如下所示?

注意:我在未按预期打印的数组的区域中添加了注释。

我提前感谢任何帮助。

    public class MyClass extends JFrame{

            public String[] idArray = new String[10];
            public String[] recordArray = new String[10];
            public String[] priceArray = new String[10];

            public void openFile(){
                try{
                    x = new Scanner(new File("inventory.txt"));
                    x.useDelimiter(",|" + System.getProperty("line.separator")); 
                }
                catch(Exception e){
                    System.out.println("Could not find file");
                }
            }
            public void readFile(){
                int i=0;
                while(x.hasNext()){
                    idArray[i] = x.next();
                    recordArray[i] = x.next();
                    priceArray[i] = x.next();
                    i++;
                }
            }
            public MyClass(){


                /** Code to create GUI Here    **/


                //Process Item
                button1.addActionListener(new ActionListener(){
                   public void actionPerformed(ActionEvent e){
                      String y = item1.getText();
                      int numItems = Integer.parseInt(y);
                      MyClass obj = new MyClass();
                      obj.openFile();

                      //**ARRAY PRINTS OUT NULL AND DOES NOT PRINT OUT THE VALUES AQUIRED IN THE FUNCTION ABOVE**//
                      for(int i=0; i < numItems; i++){
                          for(int g=0; g < idArray.length; g++){
                                System.out.println(obj.idArray[g]);   
                          }
                       }
                   }
                });
         }      
    }
4

2 回答 2

2

那是因为您从未真正调用过readFile,因此从未设置过值。我假设您打算readFileopenFile.

于 2012-08-29T01:38:15.243 回答
0

除非我遗漏了某些东西,否则您似乎正在打开文件但忘记读取文件....因此为空。尝试这个:

   obj.openFile();
   obj.readFile();
于 2012-08-29T01:42:00.513 回答