Klient.java

Java RMI

import java.rmi.Naming;
import java.rmi.RemoteException;

public class Klient {

private iBankSerwer bank = null;
private iKonto konto = null;
int status;


public Klient (){
	status = 1;
}

private static void menu(int i){
	if (1 == i){
		System.out.println("1. Logowanie");
		System.out.println("2. Nowe konto");
		System.out.println("0. Wyjscie");
	}
	else if (2 == i){
		System.out.println("1. Saldo");
		System.out.println("2. Przelew");
		System.out.println("3. Wyloguj");
		System.out.println("4. Wplac");
		System.out.println("5. Wyplac");
		System.out.println("0. Wyjscie");
	}
	else if (3 == i){
		System.out.println("Koniec pracy z bankiem");
	}
	else{
		System.out.println("0. Wyjscie");
	}
}
public void start() throws RemoteException {
	boolean ok = true;
	char wybor = 'x';
	
	while (ok){
		menu(status);
		wybor = Czytaj.Znak();
		
		if (1 == status && '1' == wybor){
			zaloguj();
		}
		else if (1 == status && '2' == wybor){
			zakladajKonto();
		}
		else if (1 == status && '0' == wybor){
			ok = false;
			status = 3;
		}
		else if (2 == status && '2' == wybor){
			przelew();
		}
		else if (2 == status && '1' == wybor){
			try{
				saldo();
			}
			catch (RemoteException e){
				System.out.println("Blad przy saldzie");
				e.printStackTrace();
			}
		}
		else if (2 == status && '4' == wybor){
			double kwota = 0;
			System.out.println("Podaj kwote");
			kwota = Czytaj.LiczbeR();
			konto.uznajNaRachunek(kwota);
			System.out.println("Wplata  " + kwota);
			saldo();
		}
		else if (2 == status && '5' == wybor){
			double s1, s2, kwota = 0;
			System.out.println("Podaj kwote");
			kwota = Czytaj.LiczbeR();
			s1 = konto.getSaldo();
			konto.zdejmijZRachunku(kwota);
			s2 = konto.getSaldo();
			if (s1 == s2){
				System.out.println("Uwaga! Saldo nie zostalo zmienione!");
			}
			else{
				System.out.println("Wyplata  " + kwota);
				saldo();
			}
		}
		else if (2 == status && '3' == wybor){
			wyloguj();
		}
		else {
			status = 3;
			ok = false;
		}
	}
	menu(3);
}
private void przelew () throws RemoteException{
	double kwota = 0;
	int id2 = 0;
	
	System.out.println("Podaj kwote");
	kwota = Czytaj.LiczbeR();
	System.out.println("Podaj id innego konta");
	id2 = Czytaj.LiczbeC();
	
	if (id2 != konto.getId()){
		if (bank.przelew(konto.getId(), id2, kwota)) {
			System.out.println("Przelew na rachunek " + id2 + " wykonany poprawnie");
			saldo();
		}else{
			System.out.println("Przelew nie zostal wykonany, sprobuj ponowanie jutro.");
		}
		
		
	}
	else {
		System.out.println("Niedozwolony przelew na własne konto");
	}
	
	
}
private void saldo() throws RemoteException{
	System.out.println("Saldo rachunku " + konto.getId() + " " + konto.getImie() + 
			" " + konto.getNazwisko() + " to "  + konto.getSaldo());
}

private void zakladajKonto(){
	if (konto != null){
		System.out.println("Jesteś zalogowany. Nie możesz zakladac.");
	}
	else{
		String imie, nazwisko;
		try{
			bank = (iBankSerwer) Naming.lookup("rmi://127.0.0.1/Bank");
			
			System.out.println("Podaj imie");
			imie = Czytaj.Linie();
			System.out.println("Podaj nazwisko");
			nazwisko = Czytaj.Linie();
			
			konto = bank.dodajKonto(imie, nazwisko);
			
			System.out.println("Konto zostało dodane");
			System.out.println("Osoba: "+ konto.getImie() + " " + konto.getNazwisko() 
					+ " otrzymal id: " + konto.getId() + " i haslo " + konto.getHaslo());
			status = 2;
		}
		catch(Exception e){
			System.out.println("Wystapil bład - szczegoly ponizej");
			e.printStackTrace();
		}
	}
}
private void wyloguj(){
	bank = null;
	konto = null;
	status = 1;
	System.out.println("Wyjscie z obslugi konta!");
}


private void zaloguj(){
	if (null != bank){
		System.out.println("Jesteś zalogowany");
	}
	else{
		int id;
		String haslo;
	try{
		bank = (iBankSerwer) Naming.lookup("rmi://127.0.0.1/Bank");

		System.out.println("Podaj id");
		id = Czytaj.LiczbeC();

		System.out.println("Haslo");
		haslo = Czytaj.Linie();
		
		konto = (iKonto) bank.logowanie(id,haslo);
		if (null == konto){
			System.out.println("Logowanie klienta " + id + " nieudane.");
			bank = null;
		}
		else{
			status = 2;
			System.out.println("Logowanie udane. Witaj "+ konto.getNazwisko() + 
					" " + konto.getImie() );
		}
}
	catch(Exception e){
		
		System.out.println("Nie można polaczyc sie z bankiem, szczegoly ponizej");
		System.out.println(e.getMessage());
		e.printStackTrace();
	}
	}
}
}

2012.11.22 22:29:14.