2012-04-08 26 views
0

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

これは、これまで

// 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"); 
    } 
} 

私のプログラムの主要部分、私はちょうど私がレイアウトされているのJLabelを入力し、アレイ上に追加できる簡単な方法がありますか?

私はこの時点でかなり迷っています。これをさらに進める方法は不明です。

+1

スタイルコメント:クラスではないものの名前を大文字にしないでください。それは読者(構文ハイライターと同様に)を混乱させます。 – Taymon

+2

申し訳ありませんが、あなたが何を求めているのかは分かりません。リストはどこにありますか、それに何を追加したいですか? – Taymon

答えて

0

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

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; 
    } 
} 

あなたの現在のクラスのプロパティとして車のリストを定義し、それぞれの時間は、あなたはあなたのリストに車を追加し、あなたの車のクラスからそれを構築します。

Car car=new Car(); 
car.setCarID(st.nextToken()); 
... 
car.setQuantity(Integer.valueOf(st.nextToken())); 
this.carList.add(car); 
関連する問題