使用 Swing JFrame + JPanel 繪製模擬指針時鐘。核心邏輯:Graphics2D 繪製圓盤、刻度、三根指針;Thread.sleep(1000) 簡易定時觸發重繪。代碼雖簡單但涵蓋坐標轉換、筆觸樣式、弧形繪製等 2D 繪圖基礎知識。
radian = value * Math.PI / 30(60 格分圓,每格 6° = π/30)。radian = hour * Math.PI/6 + minute/60 * Math.PI/6(含分齒跳動)。Pin 類封裝 Line2D.Double,根據半徑與弧度計算端點:x = cx + len * sin(rad), y = cy - len * cos(rad)。Thread.sleep 為 javax.swing.Timer(EDT 安全、無阻塞)。paintComponent(Graphics g) 而非 paint,並調用 super.paintComponent(g) 清除舊幀。setDoubleBuffered(true) 或離屏圖片繪製,消除閃爍。java.time.LocalTime.now()(Java 8+),避免 Date.getHours() 等過時方法。Clock (JFrame) → ClockPane (JPanel) → Pin (幾何工具類)
主程序啟動 Clock,進入 interval() 循環每秒觸發 cp.drawClock()。