本文展示一個基於 Java Swing 的桌面日曆程式,支援年份/月份下拉選擇、今日快速跳轉、日期點選顯示等功能。完整原始碼採用事件驅動架構,適合初學者理解 GUI 程式設計流程。
public class CalenderTrain extends JFrame implements ActionListener {
// UI 元件
JComboBox Month, Year; // 年月下拉選單
JLabel Year_l, Month_l; // 標籤
JButton[] button_day = new JButton[49]; // 日期按鈕陣列(7x7 格)
JButton button_ok, button_today; // 確定/今日按鈕
JPanel pane_ym, pane_day, pane_parent; // 版面面板
// 狀態變數
Date now_date = new Date();
int now_year, now_month;
boolean bool = false; // 是否顯示今日
String year_int; int month_int; // 使用者選擇的年月
}
BorderLayout 分割北部(年月控制列)與南部(日期網格)GridLayout(7,7,10,10),前 7 格固定顯示星期標題setDay()核心演算法步驟:
GregorianCalendar 實例dt.getDay())java.time 套件(Java 8+)取代已棄用的 Date/CalendarCalendarModel 類別,符合 MVC 模式完整可執行原始碼請見文末附件,可直接於 IDE 執行 main 方法啟動視窗。