初心者でも簡単!JavaでTODOアプリを作る完全ガイド【コンソール・GUI・Web対応】

Java

はじめに:TODOアプリを自分で作ってみよう!

「何かJavaで作れるようになりたい…」
そんな人におすすめなのがTODOアプリです!

TODOアプリは、以下のような機能を通じて、プログラミングの基本を楽しく学べます。

  • 入力(タスク追加)
  • 一覧表示
  • 編集・削除
  • ファイル保存・読み込み
  • GUIやWebへの発展

Javaの文法を使いながら、実際に「使えるアプリ」を作れる達成感を味わいましょう!


1. 開発環境の準備

🛠 必要なツール:

  • JDK(Java Development Kit)
  • IDE(Eclipse/IntelliJ/VSCode)

✅ 最初のコードで環境確認:

public class Hello {
public static void main(String[] args) {
System.out.println("Javaアプリを始めよう!");
}
}

これでJavaの基礎が動く環境が整いました。


2. コンソール版TODOアプリを作ってみよう!

🎯 機能概要:

  • タスクの追加
  • タスク一覧の表示
  • タスク削除

🧑‍💻 サンプルコード:

import java.util.ArrayList;
import java.util.Scanner;

public class TodoApp {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
ArrayList<String> tasks = new ArrayList<>();

while (true) {
System.out.println("1. タスク追加 2. 一覧表示 3. 削除 0. 終了");
int cmd = sc.nextInt();
sc.nextLine(); // 改行消費

if (cmd == 1) {
System.out.print("追加するタスク:");
String task = sc.nextLine();
tasks.add(task);
} else if (cmd == 2) {
System.out.println("【タスクリスト】");
for (int i = 0; i < tasks.size(); i++) {
System.out.println((i + 1) + ": " + tasks.get(i));
}
} else if (cmd == 3) {
System.out.print("削除する番号:");
int index = sc.nextInt();
if (index > 0 && index <= tasks.size()) {
tasks.remove(index - 1);
} else {
System.out.println("番号が正しくありません");
}
} else if (cmd == 0) {
break;
}
}
sc.close();
}
}

💡 ポイント:

  • ArrayListでデータ管理
  • Scannerで入力
  • ループ処理と分岐でナビゲーション

3. ファイル保存機能をつけてみよう!

import java.io.*;
import java.util.*;

public class TodoWithFile {
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
ArrayList<String> tasks = new ArrayList<>();
File file = new File("todo.txt");

if (file.exists()) {
Scanner fileReader = new Scanner(file);
while (fileReader.hasNextLine()) {
tasks.add(fileReader.nextLine());
}
fileReader.close();
}

while (true) {
System.out.println("1. 追加 2. 表示 3. 削除 4. 保存 0. 終了");
int cmd = sc.nextInt();
sc.nextLine();

if (cmd == 1) {
System.out.print("タスク名:");
tasks.add(sc.nextLine());
} else if (cmd == 2) {
for (int i = 0; i < tasks.size(); i++) {
System.out.println((i + 1) + ": " + tasks.get(i));
}
} else if (cmd == 3) {
System.out.print("削除番号:");
int idx = sc.nextInt();
if (idx > 0 && idx <= tasks.size()) {
tasks.remove(idx - 1);
}
} else if (cmd == 4) {
PrintWriter writer = new PrintWriter(file);
for (String task : tasks) {
writer.println(task);
}
writer.close();
System.out.println("保存しました!");
} else if (cmd == 0) {
break;
}
}
sc.close();
}
}

4. GUI版TODOアプリをSwingで作る

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.ArrayList;

public class TodoSwing {
static ArrayList<String> tasks = new ArrayList<>();
static DefaultListModel<String> listModel = new DefaultListModel<>();

public static void main(String[] args) {
JFrame frame = new JFrame("TODOアプリ");
JTextField taskField = new JTextField(15);
JButton addButton = new JButton("追加");
JButton deleteButton = new JButton("削除");
JList<String> taskList = new JList<>(listModel);

addButton.addActionListener(e -> {
String task = taskField.getText();
if (!task.isEmpty()) {
listModel.addElement(task);
tasks.add(task);
taskField.setText("");
}
});

deleteButton.addActionListener(e -> {
int index = taskList.getSelectedIndex();
if (index != -1) {
listModel.remove(index);
tasks.remove(index);
}
});

JPanel panel = new JPanel();
panel.add(taskField);
panel.add(addButton);
panel.add(deleteButton);
panel.add(new JScrollPane(taskList));

frame.add(panel);
frame.setSize(300, 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}

5. Web版TODOアプリ(Servlet/JSPやSpring Boot)

🔹 Servlet/JSPでの構成(Eclipse+Tomcat):

  • doGet:一覧表示
  • doPost:追加処理
  • web.xmlでルーティング設定

🔹 Spring Bootでの構成:

  • コントローラー、リポジトリ、エンティティを用意
  • ThymeleafでHTMLテンプレート
  • DB連携して本格TODOアプリに

6. もっと便利に!TODOアプリ改善アイデア

機能内容
優先度タスクの重要度設定
締切日日付管理
完了チェック状態を切り替える
検索特定タスクを探す
DB保存SQLiteやPostgreSQL連携

7. アプリ公開・ポートフォリオ化

  • GUI版→JAR化して配布可能
  • Web版→GitHubにアップ、サーバーにデプロイ
  • 就職活動・転職時にアピールできる成果物に!

8. 学習の次の一歩へ

🔹 自習型なら:

📘 絶対にJavaプログラマーになりたい人へ。
→ TODOアプリに必要な技術がバッチリ詰まっています!


🔹 実践+転職サポートも受けたいなら:

🏫 サイゼントアカデミー

  • 現役エンジニアがアプリコードをレビュー
  • 分からない箇所をすぐ相談できる
  • プログラマー転職支援も万全!

✨まとめ

TODOアプリは「小さいけど大きな学び」が詰まったアプリです。
Java初心者でも楽しく成長できる絶好の練習テーマとして、ぜひ一歩踏み出してみましょう!

コメント

タイトルとURLをコピーしました