✅はじめに
こんにちは!
Javaで予約・問診アプリを一から作るシリーズ、第4回目です。
今回は、管理者用の画面で予約一覧を表示する機能を作っていきます。
(前回までの内容は、患者さんが予約を入れるところまで作りました!)
予約データが正しくデータベースに保存されているか確認できるように、一覧表示の画面を作成していきます💪
🎨管理者画面のUI設計
まずは管理者用の画面を簡単に作ります。
SwingのJTableを使って、予約データを表形式で表示できるようにしてみました。すごくシンプルなつくりなので、あくまで簡易版のイメージです。
今回のUIはこんな感じの作りです👇
・タイトル: 「予約一覧」
・表示: JTextAreaでデータをテキスト形式で表示
・スクロール対応: JScrollPaneでスクロールできるように
・データ: SQLiteに保存された予約データ
🛠️ コード全体
以下が今回のコードです👇
(Swingで画面を作り、JDBCでデータベースにアクセスしています)
package app;
import javax.swing.*;
import java.awt.*;
import java.sql.*;
public class ReservationViewer {
public static void main(String[] args) {
JFrame frame = new JFrame("予約一覧");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(600, 400);
JTextArea textArea = new JTextArea();
textArea.setEditable(false);
JScrollPane scrollPane = new JScrollPane(textArea);
frame.add(scrollPane, BorderLayout.CENTER);
// DBからデータ取得
try {
String dbPath = "resources/db/reservation.db"; // 相対パスの場合
Connection conn = DriverManager.getConnection("jdbc:sqlite:" + dbPath);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM Reservation");
StringBuilder sb = new StringBuilder();
while (rs.next()) {
sb.append("ID: ").append(rs.getInt("id")).append("\n");
sb.append("名前: ").append(rs.getString("name")).append("\n");
sb.append("日付: ").append(rs.getString("date")).append("\n");
sb.append("時間帯: ").append(rs.getString("time_slot")).append("\n");
sb.append("症状: ").append(rs.getString("symptoms")).append("\n");
}
textArea.setText(sb.toString());
rs.close();
stmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
textArea.setText("データベースの読み込みに失敗しました。");
}
frame.setVisible(true);
}
}
🏥 実行結果のイメージ
💡 コードのポイント
・データベースへの接続
jdbc:sqlite:パスでSQLiteに接続しています。
・データの取得
SELECT * FROM Reservationで予約データを全件取得しています。
・JTextAreaに表示
取得したデータは文字列に整形して、JTextAreaに表示しています。
・スクロール対応
件数が増えても大丈夫なように、JScrollPaneでスクロールできるようにしています。
🗒️ おわりに
これで、管理者が予約データを簡単に確認できる画面ができました!
次回は、この予約データに対して、削除や更新の機能を追加したり、見やすい表形式(JTable)での表示にチャレンジしていく予定です!