Proste tekstowe gui

0

Witam, niedawno zacząłem przygodę z javą. Piszę program który na początku będzie prosił o login np([email protected]) za podaniu loginu będzie menu: 1.Pokaz Saldo 2.Pokaz kontakt 3.Zmien Pin itd... Lecz doszedłem do momentu w który utworzyłem klase gui i nie wiem za bardzo jak można by było sprawdzać loginy (czyli te maile). następnie też nie mam pomysłu na menu. Chciałbym zaznaczyć że jestem początkujacym i nie chce gotowe rozwiązane lecz małej pomocy. Poniżej kod:

package firmatransportowa;
import java.util.*;


class Gui
{
    private String login;
    private String contractorLogin;
   

    public String login()
    {
        Scanner scan = new Scanner(System.in);
        do
        {
        System.out.println("Podaj login: ");
        
        this.login = scan.next();
        
        if(login.equals(contractorLogin))
        {
            System.out.println("Login prawidlowy. Zostales zalogowany, wybierz jakas opcje.");
            
        }
        else
            System.out.println("Podaj jeszcze raz prawidlowy Login: ");
        }while(login !=contractorLogin);
        
        return login;
    }
    
    
}

/*

    klasa kontrahent przechowuje takie wartosci jak imie, nazwisko, wiek oraz kotakt.

*/
class Contractor
{
    private String name;
    private final String lastName;
    private final int age;
    public Contact contactContractor;
    
    
    //Konstruktor
    Contractor(String Kname, String KlastName, int Kage, String Kemail, int KphoneNumber)
    {
        name = Kname;
        lastName = KlastName;
        age = Kage;  
        contactContractor = new Contact(Kemail, KphoneNumber);
    }    
    
    public String getName()
    {
        return name;
    }
}

/*

Klasa bank Tworzy karty kredytowe oraz ustawia pin dla tych kart

*/

class Bank
{
    private final String description;
 
    ArrayList<CreditCard> cards = new ArrayList<CreditCard>();
    private final CreditCard creditCard1;
    private final CreditCard creditCard2;
    private final CreditCard creditCard3;
    private final CreditCard creditCard4;
     
    //Konstruktor
    Bank(String Kdescription)
    {
        description = Kdescription;
        
        this.creditCard1 = new CreditCard();
        this.creditCard2 = new CreditCard();
        this.creditCard3 = new CreditCard();
        this.creditCard4 = new CreditCard();       
    }
    
    
    public void choosePin()
    {
        creditCard1.choosePin();
        creditCard2.choosePin();
        creditCard3.choosePin();
        creditCard4.choosePin();
    }
    
    //metoda ktora dodaje do arraylist carty
    public void addCards()
    {
        cards.add(creditCard1);
        cards.add(creditCard2);
        cards.add(creditCard3);
        cards.add(creditCard4);
    }
}


/*

    klasa account tworzy nam koto na ktorym są przechowywane środki danego kontrahenta

*/

class Account
{
    private int pin;
    private int saldo;
    public CreditCard mainCreditCard = new CreditCard();
   
    Account()
    {
        saldo = saldo();
        pin = mainCreditCard.choosePin();
    }
//meotda ktora generuje saldo na koncie    
    private int saldo()
    {
        Random generator = new Random();
        int generated = generator.nextInt(300000);
        return this.saldo = generated;
    }

    
    //motoda pokazująca saldo kotrahenta
    public void showSaldo()
    {
        Scanner scan = new Scanner(System.in);
        int value; 
        
        do
        {
            System.out.println(this.pin+"Wprowadz poprawny pin: ");
            value = scan.nextInt();      
            if(value == this.pin)
                System.out.println(saldo);
            else
                System.out.print("Wprowadzono Zly pin, wprowadz jeszcze raz!");
        }while(value != this.pin);
    }
    
}

class CreditCard
{
    private int pin; 
    
    public int choosePin()
    {
        Random generator = new Random();
        
        int generatedPin = generator.nextInt(8999)+1000;
        return this.pin = generatedPin;
    }
    
    public void showPin()
    {
        System.out.println("Wygenerowany pin: "+pin);
    }
}

class Contact
{
    private final String email;
    private final int phoneNumber;
   
    Contact(String Kemail, int KphoneNumber)
    {
        email = Kemail;
        phoneNumber = KphoneNumber;
    }
    
    public void showContact()
    {
        System.out.println("email: "+email + " Numer telefonu: "+phoneNumber);
    }
}

public class FirmaTransportowa {

    

    public static void main(String[] args) 
    {
        Contractor michalN = new Contractor("Michał", "Nowak", 19, "[email protected]", 767878989);
        Contractor rafalK = new Contractor("Rafal", "Kowalski", 22, "[email protected]", 725724723);
        Contractor patrykN = new Contractor("Patryk", "Nowak", 23, "[email protected]", 712734734);
        Contractor marekK = new Contractor("Marek", "Kowalski", 18, "[email protected]", 898878898);
        
        Gui gui = new Gui();
        
        ArrayList<Contractor> Contractors = new ArrayList<Contractor>();
        ArrayList<Bank> Banks = new ArrayList<Bank>();
        
        
        Contractors.add(michalN);
        Contractors.add(marekK);
        Contractors.add(patrykN);
        Contractors.add(rafalK);
        
        
        Bank ing = new Bank("ING");
        Bank bzwbk = new Bank("BZWBK");
        Bank pekao = new Bank("PEKAO");
        Bank pko = new Bank("PKO");
        

        
        Banks.add(pko);
        Banks.add(ing);
        Banks.add(bzwbk);
        Banks.add(pekao);
        
        
        michalN.contactContractor.showContact();
        rafalK.contactContractor.showContact();
        patrykN.contactContractor.showContact();
        marekK.contactContractor.showContact();

       gui.login();
    }
}

0

Baza danych? W sumie chyba inaczej sprawdzać się nie da. Musisz gdzieś to przechowywać.

0
 
        do
        {
        System.out.println("Podaj login: ");
 
        this.login = scan.next();
 
        if(login.equals(contractorLogin))
        {
            System.out.println("Login prawidlowy. Zostales zalogowany, wybierz jakas opcje.");
 
        }
        else
            System.out.println("Podaj jeszcze raz prawidlowy Login: ");
        }while(login !=contractorLogin);

Na szybko to zdaje mi się, że to jest źle, musisz sprawdzić czy w tej liście nie ma podanego loginu:

ArrayList<Contractor> Contractors = new ArrayList<Contractor>();

A tą liste tworzysz jedynie lokalnie tzn popraw to w main podaj ją jako jakiś argument lub utwórz statycznie, tzn. w klasie FirmaTransportowa po za metodą:

class FirmaTransportowa{
public static ArrayList<Contractor> Contractors = new ArrayList<Contractor>();
....
}

Możesz się teraz odwoływać do tego

FirmaTransportowa.Constractors 

I na przyszłość dla ujednolicenia kodu stosuj się do pewnych standardów nazwy zmiennych z małej literii!

I jeżeli chcesz robić tą metodę statyczną możesz poczytać o Getterach i Setterach to nie trudne, wydobywanie listy w tym wypadku z dostępem prywatnym nie publicznym

0

Dzięki wielkie za zwrócenie uwagi na standardy, no i przypomnienie o getterach i setterach!

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