はじめに:TODOアプリを自分で作ってみよう!
「何かJavaで作れるようになりたい…」
そんな人におすすめなのがTODOアプリです!
TODOアプリは、以下のような機能を通じて、プログラミングの基本を楽しく学べます。
- 入力(タスク追加)
- 一覧表示
- 編集・削除
- ファイル保存・読み込み
- GUIやWebへの発展
Javaの文法を使いながら、実際に「使えるアプリ」を作れる達成感を味わいましょう!
1. 開発環境の準備
🛠 必要なツール:
- JDK(Java Development Kit)
- IDE(Eclipse/IntelliJ/VSCode)
✅ 最初のコードで環境確認:
1 |
public class Hello {<br> public static void main(String[] args) {<br> System.out.println("Javaアプリを始めよう!");<br> }<br>}<br> |
これでJavaの基礎が動く環境が整いました。
2. コンソール版TODOアプリを作ってみよう!
🎯 機能概要:
- タスクの追加
- タスク一覧の表示
- タスク削除
🧑💻 サンプルコード:
1 |
import java.util.ArrayList;<br>import java.util.Scanner;<br><br>public class TodoApp {<br> public static void main(String[] args) {<br> Scanner sc = new Scanner(System.in);<br> ArrayList<String> tasks = new ArrayList<>();<br><br> while (true) {<br> System.out.println("1. タスク追加 2. 一覧表示 3. 削除 0. 終了");<br> int cmd = sc.nextInt();<br> sc.nextLine(); // 改行消費<br><br> if (cmd == 1) {<br> System.out.print("追加するタスク:");<br> String task = sc.nextLine();<br> tasks.add(task);<br> } else if (cmd == 2) {<br> System.out.println("【タスクリスト】");<br> for (int i = 0; i < tasks.size(); i++) {<br> System.out.println((i + 1) + ": " + tasks.get(i));<br> }<br> } else if (cmd == 3) {<br> System.out.print("削除する番号:");<br> int index = sc.nextInt();<br> if (index > 0 && index <= tasks.size()) {<br> tasks.remove(index - 1);<br> } else {<br> System.out.println("番号が正しくありません");<br> }<br> } else if (cmd == 0) {<br> break;<br> }<br> }<br> sc.close();<br> }<br>}<br> |
💡 ポイント:
ArrayList
でデータ管理Scanner
で入力- ループ処理と分岐でナビゲーション
3. ファイル保存機能をつけてみよう!
1 |
import java.io.*;<br>import java.util.*;<br><br>public class TodoWithFile {<br> public static void main(String[] args) throws IOException {<br> Scanner sc = new Scanner(System.in);<br> ArrayList<String> tasks = new ArrayList<>();<br> File file = new File("todo.txt");<br><br> if (file.exists()) {<br> Scanner fileReader = new Scanner(file);<br> while (fileReader.hasNextLine()) {<br> tasks.add(fileReader.nextLine());<br> }<br> fileReader.close();<br> }<br><br> while (true) {<br> System.out.println("1. 追加 2. 表示 3. 削除 4. 保存 0. 終了");<br> int cmd = sc.nextInt();<br> sc.nextLine();<br><br> if (cmd == 1) {<br> System.out.print("タスク名:");<br> tasks.add(sc.nextLine());<br> } else if (cmd == 2) {<br> for (int i = 0; i < tasks.size(); i++) {<br> System.out.println((i + 1) + ": " + tasks.get(i));<br> }<br> } else if (cmd == 3) {<br> System.out.print("削除番号:");<br> int idx = sc.nextInt();<br> if (idx > 0 && idx <= tasks.size()) {<br> tasks.remove(idx - 1);<br> }<br> } else if (cmd == 4) {<br> PrintWriter writer = new PrintWriter(file);<br> for (String task : tasks) {<br> writer.println(task);<br> }<br> writer.close();<br> System.out.println("保存しました!");<br> } else if (cmd == 0) {<br> break;<br> }<br> }<br> sc.close();<br> }<br>}<br> |
4. GUI版TODOアプリをSwingで作る
1 |
import javax.swing.*;<br>import java.awt.*;<br>import java.awt.event.*;<br>import java.util.ArrayList;<br><br>public class TodoSwing {<br> static ArrayList<String> tasks = new ArrayList<>();<br> static DefaultListModel<String> listModel = new DefaultListModel<>();<br><br> public static void main(String[] args) {<br> JFrame frame = new JFrame("TODOアプリ");<br> JTextField taskField = new JTextField(15);<br> JButton addButton = new JButton("追加");<br> JButton deleteButton = new JButton("削除");<br> JList<String> taskList = new JList<>(listModel);<br><br> addButton.addActionListener(e -> {<br> String task = taskField.getText();<br> if (!task.isEmpty()) {<br> listModel.addElement(task);<br> tasks.add(task);<br> taskField.setText("");<br> }<br> });<br><br> deleteButton.addActionListener(e -> {<br> int index = taskList.getSelectedIndex();<br> if (index != -1) {<br> listModel.remove(index);<br> tasks.remove(index);<br> }<br> });<br><br> JPanel panel = new JPanel();<br> panel.add(taskField);<br> panel.add(addButton);<br> panel.add(deleteButton);<br> panel.add(new JScrollPane(taskList));<br><br> frame.add(panel);<br> frame.setSize(300, 200);<br> frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);<br> frame.setVisible(true);<br> }<br>}<br> |
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初心者でも楽しく成長できる絶好の練習テーマとして、ぜひ一歩踏み出してみましょう!
コメント