Cześć, jestem na końcówce mojego konsolowego programu ToDo.
Moim zamysłem było, by każdy z użytkowników miał swoją uniwersalną listę czynności do zrobienia.
Jak już wspominałem w poprzednim pytaniu, tworzenie i logowanie się jest dla trochę dla picu, ale nie potrafię jeszcze baz danych.
Stworzyłem klasę User,w której umieściłem dane takie jak login, password, listę czynności, a także klasę Tasker, która odpowiada za dodawanie tychże czynności. I teraz właśnie zrobiłem kółko, bo w Taskerze NIBY mam dodawanie czynności i ich wyświetlanie, a w Userze mam znów settera i gettera. Nie wiem które mam usunąć oraz jak zrobić, żeby za pomocą settera właśnie przejąć tę listę z Taskera, który najpierw doda jakieś tam taski.
Tzn. tak jak zobaczycie w klasie ToDoEngine przejąłem tę Listę z Taskera, ale jest ona pusta i nie wiem jak z tego wybrnąć ani jak zrobić żeby było dobrze.
Troche zawile napisałem, ale mam nadzieje ze zrozumiecie.
dzieki za odpowiedz
User
import java.util.List;
public class User {
private String login;
private String password;
private List<String> tasks;
private Tasker task;
public User(String login, String password) {
this.login = login;
this.password = password;
}
public User() {
this.task = task;
}
public void setTasks(List<String> tasks) {
this.tasks = tasks;
}
List<String> getTasks() {
return tasks;
}
String getPassword() {
return password;
}
}
AccountMaker(odpowiedzialna za tworznie konta)
import java.util.HashMap;
import java.util.Scanner;
public class AccountMaker {
private HashMap<String, User> loginDetails = new HashMap<>();
private String login, password;
private Scanner input = new Scanner(System.in);
public void inputLoginAndPassword() {
System.out.println("Input your login");
login = input.next();
System.out.println("Input your password");
password = input.next();
}
public void createAccount() throws InterruptedException {
User newUser = new User(login, password);
loginDetails.put(login, newUser);
System.out.println("Account has been created successfully");
Thread.sleep(2000);
}
HashMap<String, User> getLoginDetails() {
return loginDetails;
}
}
AccountLogger (odpowiedzialna za logowanie)
import java.util.Scanner;
public class AccountLogger {
private AccountMaker accountMaker;
private Scanner input = new Scanner(System.in);
private String login, password;
public AccountLogger(AccountMaker accountMaker) {
this.accountMaker = accountMaker;
}
public void inputLoginAndPassword() {
System.out.println("Input your login");
login = input.next();
System.out.println("Input your password");
password = input.next();
}
public boolean isLoginDataIncorrect() {
User user = accountMaker.getLoginDetails().get(login);
try {
if (user.getPassword().equals(password)) {
System.out.println("You've logged in.");
return false;
} else {
System.out.println("Bad login or password");
}
} catch (NullPointerException e) {
System.out.println("Bad login or password");
}
return true;
}
}
Tasker
import java.util.ArrayList;
import java.util.List;
public class Tasker {
private User user;
public List<String> listOfTasks = new ArrayList<>();
public Tasker(User user) {
this.user = user;
}
public void createTask(String task) {
listOfTasks.add("gotowanie");
listOfTasks.add("pranie");
listOfTasks.add(task);
}
public void showAllTasks() {
for (int i = 0; i < listOfTasks.size(); i++) {
System.out.println(listOfTasks.get(i));
}
}
}
ToDoEngine (coś jakby silnik całej apki :D, łączy wszystkie klasy w jedno)
import java.util.InputMismatchException;
import java.util.Scanner;
public class ToDoEngine {
private Scanner input = new Scanner(System.in);
private AccountMaker accountMaker = new AccountMaker();
private AccountLogger accountLogger = new AccountLogger(accountMaker);
private boolean loopIsTrue = true;
Tasker tasks = new Tasker();
User user = new User(tasks);
[...]
public void userMenu() {
System.out.println("What do you wanna to do?");
System.out.println("1. Add Task 2. Show my tasks 3. Exit");
int option = input.nextInt();
if (option >= 1 && option <= 2) {
switch (option) {
case 1:
System.out.println("Write down your task.\nYour list will be refreshed");
String z = "test";
tasks.createTask(z); //
tasks.showAllTasks(); //
user.setTasks(tasks.listOfTasks); /// it's usless
user.getTasks(); // it's usless
case 2:
System.out.println("Your task list:");
case 3:
break;
}
}
}
}