【初心者向け】Javaで作る簡単ToDoリストアプリ|GUIあり・MySQL連携あり

はじめに|Javaの学習に「ToDoアプリ」は最適!

Javaを学び始めたけど、実践的なアプリを作ってみたい。そんな方におすすめなのが「ToDoリストアプリ」です。
本記事では、以下のような機能を備えたシンプルだけど実用的なToDoアプリをJavaで作成します。

  • Swingを使ったGUI(デスクトップ画面)
  • MySQLデータベースへの保存・取得
  • タスクの追加・表示・削除機能

「画面があって、データベースに保存される」というだけで、一気に“アプリ感”が増しますよ!


開発環境

  • Javaバージョン:Java 11以上推奨
  • IDE:Eclipse / IntelliJ IDEA など
  • DB:MySQL 8.x
  • JDBCドライバ:MySQL Connector/J
  • ライブラリ:Java標準(外部ライブラリ不要)

アプリ完成イメージ

  • タスクの入力欄+追加ボタン
  • 登録済みタスクの一覧表示
  • 各タスクに「削除」ボタン
  • データはすべてMySQLに保存される

💡 完成後のアプリは「予定管理ツール」や「業務タスク進捗管理」などにも応用できます!


ステップ① MySQLにテーブルを作成する

まずはタスクを保存するテーブルを作ります。

CREATE DATABASE todo_app;

USE todo_app;

CREATE TABLE tasks (
    id INT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(255) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

ステップ② JDBC接続用クラスの作成

// DBConnection.java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DBConnection {
    private static final String URL = "jdbc:mysql://localhost:3306/todo_app";
    private static final String USER = "root";
    private static final String PASSWORD = "your_password";

    public static Connection getConnection() throws SQLException {
        return DriverManager.getConnection(URL, USER, PASSWORD);
    }
}

ステップ③ GUIの基本画面を作る(Swing)

// ToDoApp.java
import javax.swing.*;
import java.awt.*;

public class ToDoApp extends JFrame {
    public ToDoApp() {
        setTitle("ToDoリスト");
        setSize(400, 500);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(new BorderLayout());

        // 上部:入力欄+追加ボタン
        JPanel inputPanel = new JPanel();
        JTextField taskField = new JTextField(20);
        JButton addButton = new JButton("追加");
        inputPanel.add(taskField);
        inputPanel.add(addButton);

        add(inputPanel, BorderLayout.NORTH);

        // 中央:タスクリスト表示(後ほど作成)
        JPanel taskPanel = new JPanel();
        taskPanel.setLayout(new BoxLayout(taskPanel, BoxLayout.Y_AXIS));
        JScrollPane scrollPane = new JScrollPane(taskPanel);
        add(scrollPane, BorderLayout.CENTER);

        setVisible(true);
    }

    public static void main(String[] args) {
        new ToDoApp();
    }
}

ステップ④ タスクの追加処理をMySQLと連携

// TaskDAO.java
import java.sql.*;
import java.util.ArrayList;
import java.util.List;

public class TaskDAO {
    public void addTask(String title) {
        String sql = "INSERT INTO tasks (title) VALUES (?)";
        try (Connection conn = DBConnection.getConnection();
             PreparedStatement stmt = conn.prepareStatement(sql)) {
            stmt.setString(1, title);
            stmt.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    public List<String> getTasks() {
        List<String> tasks = new ArrayList<>();
        String sql = "SELECT title FROM tasks ORDER BY created_at DESC";
        try (Connection conn = DBConnection.getConnection();
             PreparedStatement stmt = conn.prepareStatement(sql);
             ResultSet rs = stmt.executeQuery()) {
            while (rs.next()) {
                tasks.add(rs.getString("title"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return tasks;
    }
}

ステップ⑤ タスクリストを画面に表示

ToDoApp.javaの中に以下を追加して、追加ボタンの動作を定義します。

TaskDAO dao = new TaskDAO();

addButton.addActionListener(e -> {
    String title = taskField.getText();
    if (!title.isEmpty()) {
        dao.addTask(title);
        taskField.setText("");
        refreshTasks(taskPanel, dao);
    }
});

refreshTasks(taskPanel, dao);

refreshTasks() メソッドを追加

private void refreshTasks(JPanel taskPanel, TaskDAO dao) {
    taskPanel.removeAll();
    for (String title : dao.getTasks()) {
        JLabel label = new JLabel(title);
        taskPanel.add(label);
    }
    taskPanel.revalidate();
    taskPanel.repaint();
}

まとめ|GUI × DB連携で、実用性がグッとアップ!

JavaでGUIアプリを作れるようになると、勉強が一気に面白くなります。そして、MySQLとの連携ができれば、実務に通用するスキルに!

ToDoリストアプリはその第一歩として非常におすすめ。今回紹介したコードをベースに、以下のような拡張も可能です。

  • タスクに「完了」チェックボックスを追加
  • 締切日時の登録
  • 完了・未完了で色分け
  • ログイン機能の追加 など

おすすめ関連記事

「将来は、エンジニアとしてもっとキャリアアップしたい」

そう考えている方にとって、実務で使える技術を学ぶことは最大の武器になります。
中でも「Java × データベース × GUI」の組み合わせは、多くの企業で求められる実践スキルの一つ。

今回は、初心者でも取り組める「ToDoリストアプリ」の作成を通して、アプリ開発の基本とMySQLとの連携方法をわかりやすく解説しました。

ちなみにこうしたスキルは、キャリアアップ転職でも確実に評価されるポイントになります。
もしあなたが「今の職場でこれ以上の成長が望めない」「もっと高年収・高待遇の企業に行きたい」と感じているなら、こちらの記事も参考にしてください👇

👉 ハイクラス転職でキャリアを一気に加速させる方法はこちら

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