【Java初心者向け】時計アプリの作り方完全ガイド|リアルタイム表示×GUIで楽しく学習!

プログラミング

「Javaで何か作ってみたいけど、実用的なアプリが思いつかない」
「リアルタイムに動くアプリに挑戦してみたい」
そんなお悩みをお持ちの方におすすめなのが、時計アプリの作成です。

Javaでは簡単なクラスとGUIの組み合わせで、現在時刻をリアルタイムに表示するアプリが作れます。
初心者の方でも、時間の取得や表示更新の仕組みを楽しく学べる題材です。

この記事では、誰でも作れるようにわかりやすいコード付きで丁寧に解説してまいります。


時計アプリを作る意味とは?

なぜ時計アプリは学習に最適なのか?

結論:リアルタイム処理とGUI更新の基本が一度に学べるからです。

Java初心者の方が次に取り組むべきステップとして、
「リアルタイムで動作するアプリ」を作ることは非常に意味があります。

時計アプリを作ると学べること:

  • 現在時刻の取得(LocalTimeクラスなど)
  • 繰り返し処理と待機(Timerなどの使い方)
  • SwingによるGUI表示と更新

たとえば文部科学省の「情報活用能力の育成」でも、
「プログラミング的思考を実生活と結びつけて育成すること」が重要視されています
(参考:https://www.mext.go.jp/a_menu/shotou/zyouhou/detail/1375607.htm)。

時計アプリはその入り口として最適な題材です。


Javaで現在時刻を取得する方法

LocalTimeとDateTimeFormatterの使い方

結論:Java 8以降のjava.timeパッケージを使えば簡単に取得できます。

1
2
3
4
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
LocalTime now = LocalTime.now();
String time = now.format(DateTimeFormatter.ofPattern("HH:mm:ss"));

このコードを使えば、常に最新の時:分:秒の時刻を文字列として取得できます。


GUIに現在時刻を表示する方法

Swingを使って画面に表示する手順

結論:JLabelに時刻文字列をセットすれば、画面に表示できます。

まずは基本のラベル表示:

1
2
JLabel label = new JLabel("現在時刻:00:00:00");
frame.add(label);

そして、時間を毎秒更新する仕組みとして、javax.swing.Timerを使用します。


Timerで毎秒更新する仕組み

javax.swing.Timerで1秒ごとに時刻更新

結論:定期的に動作するイベント処理をTimerで設定できます。

以下がTimerを使った更新処理のコードです。

1
2
3
4
5
6
7
8
Timer timer = new Timer(1000, new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        LocalTime now = LocalTime.now();
        String time = now.format(DateTimeFormatter.ofPattern("HH:mm:ss"));
        label.setText("現在時刻:" + time);
    }
});
timer.start();

これで毎秒画面が更新され、リアルタイムに動く時計になります。


Java時計アプリの完成形コード

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
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
public class ClockApp extends JFrame {
    private JLabel label;
    public ClockApp() {
        label = new JLabel();
        label.setFont(new Font("Arial", Font.BOLD, 32));
        label.setHorizontalAlignment(SwingConstants.CENTER);
        getContentPane().add(label);
        setTitle("時計アプリ");
        setSize(300, 150);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setVisible(true);
        Timer timer = new Timer(1000, new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                LocalTime now = LocalTime.now();
                String time = now.format(DateTimeFormatter.ofPattern("HH:mm:ss"));
                label.setText(time);
            }
        });
        timer.start();
    }
    public static void main(String[] args) {
        new ClockApp();
    }
}

うまく動かないときの対処法

よくあるミスとその改善方法

よくある失敗例:

  • java.timeがインポートされていない
  • Timerjava.util.Timerを間違える
  • Swingのコンポーネントを正しく配置していない

改善方法:

  • javax.swing.Timerを明示的に使う
  • mainメソッド内でnew ClockApp();を実行するだけにする
  • フォントサイズや枠の大きさも調整可能(setFont()setSize()

応用アイデアとステップアップ

次に挑戦してみたい機能例

時計アプリを応用するには:

  • 秒数以外に「日付」も表示
  • 世界時計(ZoneIdを使って他国の時刻表示)
  • アラーム機能を追加する(指定時刻でJOptionPane表示)

これらは、Javaをもっと実用的に使いたい人にぴったりの発展課題です。


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

1
ClockApp.java    // 単一ファイルで構成

GUIで動くシンプルなアプリなので、Javaの初心者にとって達成感がある内容です。


まとめ:Java学習の次の一歩に

この記事では、Javaで時計アプリを作る方法を解説しました。

学べたポイント:

  • LocalTimeの使い方
  • Swingによる画面表示
  • Timerを使ったリアルタイム更新

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