【Java初心者向け】メモ帳アプリの作り方完全ガイド|Swing×ファイル保存で実用的に学習

プログラミング

「Javaで実用的なアプリを作ってみたい」
「ファイル保存やGUIも学びたいけど難しそう」
そんな悩みを抱える方におすすめなのが、メモ帳アプリの作成です。

このアプリでは、文字の入力・保存・読み込みといった基本的な機能を体験できます。
JavaのSwingFileWriterなどの仕組みを使えば、誰でも簡単に作れて、GUIの基本も学べる構成です。

この記事では、Java初心者の方にもわかりやすく、コード付きで丁寧に解説いたします。


メモ帳アプリを作る意義とは?

なぜメモ帳は学習にちょうどいいのか?

結論:GUI・文字入力・ファイル保存が一度に学べるからです。

Javaで何か「形に残る」アプリを作ってみたいと考える初心者の方には、メモ帳アプリが最適です。
以下のようなスキルを一つのアプリで身につけることができます。

  • Swingを使った画面作り(JTextArea, JButton, JFileChooser
  • 入力された文字の管理と表示
  • テキストファイルへの保存・読み込み

文部科学省が掲げる「情報活用能力の育成」でも、実用的で自分ごとの学びが推奨されています(出典:https://www.mext.go.jp/a_menu/shotou/zyouhou/detail/1375607.htm)。


Javaで必要な基本部品の準備

GUIに必要な部品を知っておきましょう

結論:以下の部品を使えばメモ帳は作れます。

  • JTextArea:文章を入力・表示する欄
  • JScrollPane:スクロール付きにするためのラッパー
  • JButton:保存・読み込みのためのボタン
  • JFileChooser:ファイル選択用ダイアログ

メモ帳アプリの全体構造を理解する

機能は3つだけ、だからシンプルに作れる

結論:以下の3ステップでアプリを完成させます。

  1. 画面にテキストエリアを配置
  2. 保存ボタンでファイルへ書き出し
  3. 読み込みボタンでファイルから読込

構造は以下のようになります:

1
2
3
JFrame
├── JTextArea(スクロール付き)
└── JPanel(保存・開くボタン)

実装:Swingでメモ帳アプリを作成

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
 
public class MemoApp extends JFrame {
    private JTextArea textArea;
 
    public MemoApp() {
        setTitle("メモ帳アプリ");
        setSize(500, 400);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
 
        textArea = new JTextArea();
        JScrollPane scrollPane = new JScrollPane(textArea);
        add(scrollPane, BorderLayout.CENTER);
 
        JButton saveBtn = new JButton("保存");
        JButton loadBtn = new JButton("開く");
 
        JPanel panel = new JPanel();
        panel.add(saveBtn);
        panel.add(loadBtn);
        add(panel, BorderLayout.SOUTH);
 
        // 保存ボタンの処理
        saveBtn.addActionListener(e -> {
            JFileChooser fc = new JFileChooser();
            int result = fc.showSaveDialog(this);
            if (result == JFileChooser.APPROVE_OPTION) {
                try (BufferedWriter writer = new BufferedWriter(new FileWriter(fc.getSelectedFile()))) {
                    writer.write(textArea.getText());
                } catch (IOException ex) {
                    JOptionPane.showMessageDialog(this, "保存に失敗しました。");
                }
            }
        });
 
        // 開くボタンの処理
        loadBtn.addActionListener(e -> {
            JFileChooser fc = new JFileChooser();
            int result = fc.showOpenDialog(this);
            if (result == JFileChooser.APPROVE_OPTION) {
                try (BufferedReader reader = new BufferedReader(new FileReader(fc.getSelectedFile()))) {
                    textArea.setText("");
                    String line;
                    while ((line = reader.readLine()) != null) {
                        textArea.append(line + "\n");
                    }
                } catch (IOException ex) {
                    JOptionPane.showMessageDialog(this, "読み込みに失敗しました。");
                }
            }
        });
 
        setVisible(true);
    }
 
    public static void main(String[] args) {
        new MemoApp();
    }
}

よくあるエラーと修正法

保存や読込が動かないときのチェックポイント

結論:JFileChooserとFileWriterの使い方を見直しましょう。

  • showSaveDialog() / showOpenDialog() の戻り値を確認
  • try-with-resources(try(…) {})で確実に閉じる
  • 日本語を扱いたい場合は OutputStreamWriterUTF-8 指定も検討

応用:次に挑戦してみたい機能

メモ帳アプリをもっと便利にするには?

機能拡張のアイデア:

  • 文字数カウント機能
  • 自動保存(数分ごと)
  • 保存履歴(過去ファイル管理)

完成形コードまとめと構成

1
MemoApp.java    // GUI+保存+読込をまとめた単一ファイル

すぐに実行でき、誰でも操作しやすいシンプルなGUIアプリとして完成しています。


まとめ:メモ帳アプリで学べたこと

この記事では、Javaでメモ帳アプリを作る方法を詳しくご紹介しました。

学べたこと:

  • GUI(Swing)を使ったアプリ構築
  • ファイルへの保存・読み込み
  • 実用的な部品の組み合わせとレイアウト

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