「Javaで実用的なアプリを作ってみたい」
「ファイル保存やGUIも学びたいけど難しそう」
そんな悩みを抱える方におすすめなのが、メモ帳アプリの作成です。
このアプリでは、文字の入力・保存・読み込みといった基本的な機能を体験できます。
JavaのSwing
とFileWriter
などの仕組みを使えば、誰でも簡単に作れて、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ステップでアプリを完成させます。
- 画面にテキストエリアを配置
- 保存ボタンでファイルへ書き出し
- 読み込みボタンでファイルから読込
構造は以下のようになります:
JFrame
├── JTextArea(スクロール付き)
└── JPanel(保存・開くボタン)
実装:Swingでメモ帳アプリを作成
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(…) {}
)で確実に閉じる - 日本語を扱いたい場合は
OutputStreamWriter
にUTF-8
指定も検討
応用:次に挑戦してみたい機能
メモ帳アプリをもっと便利にするには?
機能拡張のアイデア:
- 文字数カウント機能
- 自動保存(数分ごと)
- 保存履歴(過去ファイル管理)
完成形コードまとめと構成
MemoApp.java // GUI+保存+読込をまとめた単一ファイル
すぐに実行でき、誰でも操作しやすいシンプルなGUIアプリとして完成しています。
まとめ:メモ帳アプリで学べたこと
この記事では、Javaでメモ帳アプリを作る方法を詳しくご紹介しました。
学べたこと:
- GUI(Swing)を使ったアプリ構築
- ファイルへの保存・読み込み
- 実用的な部品の組み合わせとレイアウト