2012-08-29 20 views
0

我的程序應該模擬購物車。其中一個功能,它從文本文件中讀取項目數據,並將數據(如價格,項目標識和項目名稱)存儲在數組中。一旦我嘗試從下面的'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]); 
          } 
         } 
        } 
       }); 
     }  
    } 
+1

readFile()被調用了嗎? 'x'被定義在哪裏?你應該爲'readFile()'添加一些調試語句,以確保它被執行並跟蹤它正在做什麼。 – jahroy

+0

感謝您的回覆。我刪除了很多代碼,使它更易於在網站上閱讀,我定義了所有的變量,包括x ...問題是我從來沒有調用過readFile(),我的錯誤愚蠢,我試圖找出一個好的時候,謝謝你指出,我感謝幫助:) – AnchovyLegend

回答

2

這是因爲你永遠不會實際調用readFile,所以值永遠不會被設置。我假設你打算從openFile打電話readFile

+0

感謝您的答覆,這正是我的問題,愚蠢的錯誤。我對問題過於複雜,並試圖找出相當長的一段時間。我很感激幫助,謝謝:) – AnchovyLegend

0

除非我失去了一些東西,它看起來像你打開文件,但忘記閱讀文件....因此空。試試這個:

obj.openFile(); 
    obj.readFile();