Cześć,
Mam pytanie, zrobiliśmy aplikację konsolową w JAVIE w ramach projektu do rejestru mandatów i kierowców. Potrzebujemy przenieść to na GUI. Czy jest jakiś sposób, aby GUI korzystało tylko z kodu zapisanego w aplikacji konsolowej na podstawie odnośników?
Aplikacja konsolowa VS GUI
- Rejestracja: dni
- Ostatnio: dni
- Rejestracja: dni
- Ostatnio: dni
z kodu zapisanego w aplikacji konsolowej na podstawie odnośników
Co przez to rozumiesz?
- Rejestracja: dni
- Ostatnio: dni
Mam klasę główną "Baza" i tam za pomocą switchów są opisane czynności jakie może wykonywać konkretny użytkownik.
Ja bym chciał teraz przenieść w jakiś sposób aplikację konsolową do GUI z buttonami, ale niestety siedzę kolejny dzień i nie mam pomysłu jak mogę to zrobić, aby GUI robiło to samo co konsolowa.
- Rejestracja: dni
- Ostatnio: dni
To co było w case (bez breaka!) wrzuć do obsługi zdarzenia przycisku.
- Rejestracja: dni
- Ostatnio: dni
Czyli jeśli poniżej jest mój kod to do buttona odpowiedzialnego za logowanie jako kierowca powinienem wrzucić od wiersza 41 wyrzucając wszystkie breaki?
import java.util.ArrayList;
import java.util.InputMismatchException;
import java.util.List;
import java.util.Scanner;
public class Baza {
public static final int Policja=0;
public static final int Zwykły_użytkownik=1;
public static final int Dodaj_kierowce = 2;
public static final int Wyswietl_Wszystkich = 4;
public static final int Wyjdz = 9;
public static final int WYSZUKAJ=1;
public static final int dodaj=3;
public static final int usun=2;
public static final int poziom_wyzej = 8;
private static List<Kierowca> kierowcy;
public static void main(String[] args) {
kierowcy = new ArrayList<Kierowca>();
Scanner sc = new Scanner(System.in);
int option = 0;
int n=100;
int user = 0;
boolean wyjdz_wyzej = false;
do {
printOptionss();
try {
user = sc.nextInt();
sc.nextLine();
} catch (InputMismatchException exc) {
sc.nextLine();
System.out.println("--------------------");
System.out.println("Dane w nieprawidłowym formacie ");
continue;
}
switch (user) {
case Policja:
wyjdz_wyzej = false;
do {
printOptions();
try {
option = sc.nextInt();
sc.nextLine();
} catch (InputMismatchException exc) {
sc.nextLine();
System.out.println("--------------------");
System.out.println("Dane w nieprawidłowym formacie ");
continue;
}
switch (option) {
case Dodaj_kierowce:
try {
addCompetitor(sc);
} catch (InputMismatchException e) {
sc.nextLine();
System.out.println("--------------------");
System.out.println("Błąd odczytu danych");
}
break;
case Wyswietl_Wszystkich:
printCompetitors();
break;
case Wyjdz:
break;
case dodaj:
dodaj();
break;
case WYSZUKAJ:
searchP();
break;
case poziom_wyzej:
wyjdz_wyzej = true;
break;
default:
System.out.println("--------------------");
System.out.println("Proszę wybrać poprawną opcję");
}
} while (option != Wyjdz && wyjdz_wyzej == false);
break;
case Zwykły_użytkownik:
wyjdz_wyzej = false;
do {
printOptionssx();
try {
option = sc.nextInt();
sc.nextLine();
} catch (InputMismatchException exc) {
sc.nextLine();
System.out.println("--------------------");
System.out.println("Dane w nieprawidłowym formacie ");
continue;
}
switch (option) {
case Wyjdz:
break;
case usun:
zaplac();
break;
case WYSZUKAJ:
searchP();
break;
case poziom_wyzej:
wyjdz_wyzej = true;
break;
default:
System.out.println("--------------------");
System.out.println("Proszę wybrać poprawną opcję");
}
} while (option != Wyjdz && wyjdz_wyzej == false);
break;
case Wyjdz:
return;
default:
System.out.println("--------------------");
System.out.println("Proszę wybrać poprawną opcję");
}
} while (option != Wyjdz);
sc.close();
}
private static void searchP(){
System.out.println("Podaj numer Pesel:");
Scanner wysz = new Scanner(System.in);
String wysz1 = wysz.nextLine();
Kierowca znaleziony = null;
for (int i=0; i<=kierowcy.size()-1; i++) {
if (kierowcy.get(i).getPesel().equals(wysz1)) {
znaleziony = kierowcy.get(i);
break;
}
}
if (znaleziony != null ) {
System.out.println(znaleziony);
}
}
private static void dodaj() {
System.out.println("Podaj numer Pesel:");
Scanner wysz = new Scanner(System.in);
String wysz1 = wysz.nextLine();
Kierowca znaleziony = null;
for (int i=0; i<=kierowcy.size()-1; i++) {
if (kierowcy.get(i).getPesel().equals(wysz1)) {
znaleziony = kierowcy.get(i);
break;
}
}
if (znaleziony != null ) {
System.out.println(znaleziony);
System.out.println("Dodaj wartość mandatu:");
Scanner manda = new Scanner(System.in);
int mand = manda.nextInt();
if (mand>=0){
znaleziony.man=znaleziony.man+mand;
System.out.println(znaleziony);
System.out.println("Dodaj ilość punktów karnych:");
Scanner pktk = new Scanner(System.in);
int ka = pktk.nextInt();
if (ka>=0){
znaleziony.pkt=znaleziony.pkt+ka;
System.out.println(znaleziony);
}
else{
System.out.println("--------------------");
System.out.println("Ilość punktów karnych musi być większa lub równa 0");
}
}
else{
System.out.println("--------------------");
System.out.println("Kwota mandatu musi być większa lub równa 0");
}
} else {
System.out.println("--------------------");
System.out.println("Nie znaleziono kierowcy");
}
}
private static void zaplac() {
System.out.println("Podaj numer Pesel:");
Scanner wysz = new Scanner(System.in);
String wysz1 = wysz.nextLine();
Kierowca znaleziony = null;
for (int i=0; i<=kierowcy.size()-1; i++) {
if (kierowcy.get(i).getPesel().equals(wysz1)) {
znaleziony = kierowcy.get(i);
break;
}
}
if (znaleziony != null ) {
System.out.println(znaleziony);
System.out.println("Wpisz kwotę mandatu, którą chcesz zapłacić:");
Scanner manda = new Scanner(System.in);
int mand = manda.nextInt();
if (0>znaleziony.man-mand){
System.out.println("--------------------");
System.out.println("Zbyt duża kwota wpłaty");
}
else if (mand<0)
{
System.out.println("--------------------");
System.out.println("Kwota którą chcesz wpłacić musi być większa niż 0");
}
else{
znaleziony.man=znaleziony.man-mand;
System.out.println(znaleziony);
}
}
else {
System.out.println("--------------------");
System.out.println("Nie znaleziono kierowcy");
}
}
private static void printCompetitors() {
System.out.println("--------------------");
System.out.println("Lista ukaranych:");
for (Kierowca p: kierowcy) {
System.out.println(p);
}
}
private static void addCompetitor(Scanner sc) throws InputMismatchException {
Kierowca osoba = new Kierowca();
System.out.println("--------------------");
System.out.println("Dodawanie nowego kierowcy: ");
System.out.println("PESEL:");
osoba.setPesel(sc.nextLine());
System.out.println("Imię: ");
osoba.setFirstName(sc.nextLine());
System.out.println("Nazwisko");
osoba.setLastName(sc.nextLine());
System.out.println("Mandaty:");
osoba.setMan(sc.nextInt());
System.out.println("Punkty karne:");
osoba.setAge(sc.nextInt());
sc.nextLine();
Kierowca znaleziony = null;
for (int i=0; i<=kierowcy.size()-1; i++) {
if (kierowcy.get(i).getPesel().equals(osoba.getPesel())) {
znaleziony = kierowcy.get(i);
break;
}
}
if (znaleziony != null ) {
System.out.println("--------------------");
System.out.println("Podany kierowca znajduje się już w systemie");
}
else {
if(osoba.getAge()>=0 && osoba.getMan()>=0){
kierowcy.add(osoba);
System.out.println("--------------------");
System.out.println("Dodano pomyślnie");
}
else
{System.out.println("--------------------");
System.out.println("Wprowadzono nieprawidłową wartość mandatu lub punktów karnych");}
}
}
private static void printOptions() {
System.out.println("--------------------");
System.out.println("Dostępne opcje: ");
System.out.println(WYSZUKAJ+ " - Wyszukaj");
System.out.println(Dodaj_kierowce + " - Dodaj kierowce");
System.out.println(dodaj + " - Ukaraj kierowcę");
System.out.println(Wyswietl_Wszystkich + " - Wyświetl kierowców");
System.out.println(poziom_wyzej + " - Powrót");
System.out.println(Wyjdz + " - Wyjście z programu");
System.out.println("Wybierz opcję: ");
}
private static void printOptionssx() {
System.out.println("--------------------");
System.out.println("Dostępne opcje: ");
System.out.println(WYSZUKAJ+ " - Wyszukaj");
System.out.println(usun + " - zaplac mandat");
System.out.println(poziom_wyzej + " - Powrót");
System.out.println(Wyjdz + " - Wyjście z programu");
System.out.println("Wybierz opcję: ");
}
private static void printOptionss() {
System.out.println("--------------------");
System.out.println("Wybierz użytkownika: ");
System.out.println(Policja + " - Policja");
System.out.println(Zwykły_użytkownik + " - Zwykły użytkownik");
System.out.println(Wyjdz + " - Wyjście z programu");
System.out.println("Wybierz opcję: ");
}
}
- Rejestracja: dni
- Ostatnio: dni
Gdzie jest wiersz 41? W menu nie ma pozycji typu logowanie kierowcy.
Masz do obsługi zdarzenia wpisać kod, który jest między dwoma kolejnymi case (bez break!).
- Rejestracja: dni
- Ostatnio: dni
W menu jest opcja zalogowania się jako Policja oraz jako Zwykły użytkownik*.
Rozumiem, że powinienem case odpowiedzialny za wybór użytkownika skopiować bez breaków, tak?
switch (user) {
case Policja:
wyjdz_wyzej = false;
do {
printOptions();
try {
option = sc.nextInt();
sc.nextLine();
} catch (InputMismatchException exc) {
sc.nextLine();
System.out.println("--------------------");
System.out.println("Dane w nieprawidłowym formacie ");
continue;
}
switch (option) {
case Dodaj_kierowce:
try {
addCompetitor(sc);
} catch (InputMismatchException e) {
sc.nextLine();
System.out.println("--------------------");
System.out.println("Błąd odczytu danych");
}
break;
case Wyswietl_Wszystkich:
printCompetitors();
break;
case Wyjdz:
break;
case dodaj:
dodaj();
break;
case WYSZUKAJ:
searchP();
break;
case poziom_wyzej:
wyjdz_wyzej = true;
break;
default:
System.out.println("--------------------");
To sobie kopiuję bez breaków, ale pojawia się pytanie co powinienem wpisać jeśli chcę, aby po naciśnięciu przycisku odpowiedzialnego za logowanie jako zwykły użytkownik albo policjant przerzucało mnie do kolejnego okienka w którym będzie możliwość naciśnięcia przycisku dostępnego dla jednego albo drugiego?