0

私のプログラムは、ショッピングカートをシミュレートすることになっています。関数の1つであるこの関数は、テキストドキュメントからアイテムデータを読み取り、価格、アイテムID、アイテム名などのデータを配列に格納します。以下の「myClass」クラスから配列の内容にアクセスしようとすると、関数に追加された配列の内容が消えたようです。以下で試みるように、myClassで、関数に要素が追加されたidArrayを使用する正しい方法を誰かが理解するのを手伝ってくれるかどうか疑問に思っていました。

注:以下のように出力されない配列の領域にコメントを追加しました。

よろしくお願いします。

    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ことはなく、値が設定されないためです。readFileから電話するつもりだったと思いますopenFile

于 2012-08-29T01:38:15.243 に答える
0

私が何かを見逃していない限り、あなたはファイルを開いているように見えますが、ファイルを読むのを忘れています....したがってnull。これを試して:

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