Klient.java
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.