2012-04-08 2 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

Ваша проблема заключается в том, что вы пытаетесь сделать слишком много внутри одного класса. Это возможно, но не очень хорошо организовано.

Создайте отдельный класс для проведения одиночной записи автомобиля. Он должен быть простым классом «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); 
Смежные вопросы