filereader+wczytywanie x razy

0

Witam :)

Problem jest nastepujacy - chce wczytac do obiektow myAcc[] (przykladowo 4 obiekty) zmienne AccNo, Sortcode, Balance z pliku txt...

tak wiec:

public class Account {

    private String SortCode;
    private int AccountNo;

    private double Balance;
    private Scanner accinfo;
    private FileReader read;


    public Account() {
      try {
      read = new FileReader("C:\\accountinformation.txt");
      accinfo = new Scanner(read);
      }
      catch (IOException exception){
      System.out.println("Error" + exception);
                }
    }

...
...
...

public void LoadFromFile() {

               AccountNo = Integer.parseInt(accinfo.nextLine());
               SortCode = accinfo.nextLine();
               Balance = Double.parseDouble(accinfo.nextLine());

               }

teraz w mojej formie jpanel mam:

deklaracje na gorze:

public Account[] myAcc= new Account[4];

No i nasz nieszczesny przycisk:

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         


        for (int i=0; i<4; i++){
            myAcc[i] = new Account();
            myAcc[i].LoadFromFile();
            myAcc[i].DisplayAccount(jTextArea1);
            jTextArea1.append("to byl id" + i +"\n");
        }

W myAcc[1] [2] [3] itd. wczytuje mi to samo, 3 pierwsze linijki z pliczku tekstowego:(
Tak wiec tutaj pytanie do was, jak to obejsc - chce zeby wczytalo mi 3. linijki do myAcc[1], 3. kolejne do myAcc[2] itd. ...

Pozdrawiam
Marcin

0

Najmniej zmian wymaga chyba taka modyfikacja:

public void LoadFromFile(int ilePominac) {
               for(int i=0;i<ilePomonac;i++)
                  accinfo.nextLine();
               AccountNo = Integer.parseInt(accinfo.nextLine());
               SortCode = accinfo.nextLine();
               Balance = Double.parseDouble(accinfo.nextLine());

               }
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         


        for (int i=0; i<4; i++){
            myAcc[i] = new Account();
            myAcc[i].LoadFromFile(i*3);
            myAcc[i].DisplayAccount(jTextArea1);
            jTextArea1.append("to byl id" + i +"\n");
        }
0
bogdans napisał(a)

Najmniej zmian wymaga chyba taka modyfikacja:

...

OK, dziekuje bardzo dziaaaaaaaaaala :) hmmm, kolejna sprawa... powiedzmy ze teraz chcialbym wybrac jedno z kont, czyli mam textfield i przycisk - user wpisuje accountno i wtedy acc jest wybrany + wypisane sa dane tego konta w drugim textarea...

public void Modify(javax.swing.JTextField txtAccountNo){
          
        AccountNo = Integer.parseInt(txtAccountNo.getText()); 
}

GUI:

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                                                           
        myAcc[i].Modify(jTextField1);
        myAcc[i].DisplayAccount(jTextArea1);

        }

tylko nie wiem zbytnio co ustawic jako i..., mam dane wczytane i teraz program musi sprawdzic ktore accountno zostalo wybrane i powinien ustawic i? (?!)
A moze jakies inne podejscie do tego? moze zamiast wczytywac all i pozniej dopiero wybierac dane konto mozna wyszukiwac w pliku txt?:)

z gory dzieki za kazde podpowiedzi kodowe!

0
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
   int accountNo = Integer.parseInt(txtAccountNo.getText());
   for (int i=0; i<4; i++) {
      if(myAcc[i].getAccountNo() == accountNo) {
         myAcc[i].Modify(jTextField1);
         myAcc[i].DisplayAccount(jTextArea1);
         break;
      }
   }
}

tylko dopisz sobie do Account (jeśli nie ma) publiczną metodę: public int getAccountNo() { return AccountNo }

1 użytkowników online, w tym zalogowanych: 0, gości: 1