Codelab: Construindo um Compoente de Gerenciador de Tarefas em Java
Introdução
Neste codelab, você aprenderá a criar um componente de software básico em Java para gerenciar uma lista de tarefas. Você implementará um sistema que permite adicionar, completar, remover e listar tarefas através de um aplicativo de console.
Acesse o link: https://classroom.github.com/a/rH9A4tRh
Clone o repositorio
git clone <url-do-projeto>
Passo 1: Criando a Classe Task
Crie um arquivo chamado Task.java.
Adicione o seguinte código ao arquivo:
public class Task {
private String name;
private boolean isComplete;
public Task(String name) {
this.name = name;
this.isComplete = false;
}
public String getName() {
return name;
}
public boolean isComplete() {
return isComplete;
}
public void complete() {
this.isComplete = true;
}
@Override
public String toString() {
return "Task{" +
"name='" + name + '\'' +
", isComplete=" + isComplete +
'}';
}
}
Passo 2: Criando a Classe TaskManager
Crie um arquivo chamado TaskManager.java.
Insira o código a seguir:
import java.util.ArrayList;
import java.util.List;
public class TaskManager {
private List<Task> tasks;
public TaskManager() {
this.tasks = new ArrayList<>();
}
public void addTask(Task task) {
tasks.add(task);
}
public void completeTask(String taskName) {
for (Task task : tasks) {
if (task.getName().equals(taskName)) {
task.complete();
return;
}
}
}
public void removeTask(String taskName) {
tasks.removeIf(task -> task.getName().equals(taskName));
}
public List<Task> getTasks() {
return tasks;
}
}
Use:
mvn deploy
Passo 3: Crie um novo projeto e use a Biblioteca em Projetos Maven
<repositories>
<repository>
<id>github</id>
<name>My Maven Repo on GitHub</name>
<url>https://raw.githubusercontent.com/[repo]/</url>
</repository>
</repositories>
Usando a biblioteca
<dependencies>
<dependency>
<groupId>br.com.mariojp.easytask</groupId>
<artifactId>easytask</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
import java.util.Scanner;
public class TaskApp {
private static final Scanner scanner = new Scanner(System.in);
private static final TaskManager taskManager = new TaskManager();
public static void main(String[] args) {
boolean running = true;
while (running) {
System.out.println("\nGerenciador de Tarefas:");
System.out.println("1. Adicionar Tarefa");
System.out.println("2. Completar Tarefa");
System.out.println("3. Remover Tarefa");
System.out.println("4. Listar Tarefas");
System.out.println("5. Sair");
System.out.print("Escolha uma opção: ");
int choice = scanner.nextInt();
scanner.nextLine(); // Consume newline left-over
switch (choice) {
case 1:
addTask();
break;
case 2:
completeTask();
break;
case 3:
removeTask();
break;
case 4:
listTasks();
break;
case 5:
running = false;
break;
default:
System.out.println("Opção inválida, tente novamente.");
}
}
}
private static void addTask() {
System.out.print("Nome da Tarefa: ");
String name = scanner.nextLine();
Task task = new Task(name);
taskManager.addTask(task);
System.out.println("Tarefa adicionada com sucesso.");
}
private static void completeTask() {
System.out.print("Nome da Tarefa a completar: ");
String name = scanner.nextLine();
taskManager.completeTask(name);
System.out.println("Tarefa completada.");
}
private static void removeTask() {
System.out.print("Nome da Tarefa a remover: ");
String name = scanner.nextLine();
taskManager.removeTask(name);
System.out.println("Tarefa removida.");
}
private static void listTasks() {
System.out.println("Tarefas:");
for (Task task : taskManager.getTasks()) {
System.out.println(task);
}
}
}
Desafios Adicionais
Adicione a funcionalidade para editar o nome de uma tarefa.
Implemente a persistência de tarefas usando arquivos ou banco de dados.
Crie uma interface gráfica de usuário (GUI) para o aplicativo.