はじめに: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初心者でも楽しく成長できる絶好の練習テーマとして、ぜひ一歩踏み出してみましょう!


コメント