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