0

私は、csv ファイルから読み取り、StringTokenizer を使用して要素を切り刻み、JLabels に配置するプロジェクトに取り組んでいます。これまでのところ、私はその部分を下げています。各位置をスクロールするボタンがありますが、フィールドに入力して配列に追加する方法がわかりません。

これは、これまでの私のプログラムの主要部分です

// program reads in csvfile.
private void loadCarList() {
    try{
        BufferedReader CSVFile = new BufferedReader(new FileReader("car.txt"));
        String dataRow = CSVFile.readLine();

        while(dataRow != null){

        carList.add(dataRow);
        dataRow = CSVFile.readLine();

        }

        }catch(Exception e){
            System.out.println("Exception while reading csv file: " + e);                  
        }
    }
}

//this will click cycle through the elements in the Jlabels.

private void loadNextElement(){

    try {
        StringTokenizer st = new StringTokenizer((String)carList.get(position), ",");
        while(st.hasMoreTokens() && position <= carList.size() -1) {

            position ++;
            String CarID = st.nextToken();
            String DealerShipID = st.nextToken();
            String ColorID = st.nextToken();
            String Year = st.nextToken();
            String Price = st.nextToken();
            String Quantity = st.nextToken();

            tCarID.setText(CarID);
            tDealerShip.setText(DealerShipID);
            tColor.setText(ColorID);
            tYear.setText(Year);
            tPrice.setText(Price);
            tQuantity.setText(Quantity);
        }

    } catch(Exception e){
        JOptionPane.showMessageDialog(null, "youve reached the end of the list");
    }
}

レイアウトした jlabels を入力して配列に追加する簡単な方法はありますか?

私はこの時点でちょっと迷っており、これをさらに進める方法がわかりません。

4

1 に答える 1

0

あなたの問題は、1 つのクラス内で多くのことをしようとしているようです。それは可能ですが、あまりよく整理されていません。

単一の Car レコードを保持するための別のクラスを作成します。これは単純な「bean」または「POJO」クラスである必要があり、通常はいくつかのプライベート プロパティとパブリック ゲッターおよびセッター (別名アクセサーおよびミューテーター) で構成されます。車のリストはこれらのオブジェクトで構成されます。

public class Car {
  private String carID;
  ...
  private Integer quantity;

  public getCarID() {
     return this.carID;
  }
  ...
  public setQuantity(Integer quantity) {
    this.quantity=quantity;
  }
}

Cars のリストを現在のクラスのプロパティとして定義し、Car をリストに追加するたびに Car クラスから作成します。

Car car=new Car();
car.setCarID(st.nextToken());
...
car.setQuantity(Integer.valueOf(st.nextToken()));
this.carList.add(car);
于 2012-04-08T04:07:00.693 に答える