中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java如何實現動態時鐘并設置鬧鐘功能

發布時間:2021-04-17 14:17:33 來源:億速云 閱讀:554 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關java如何實現動態時鐘并設置鬧鐘功能的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

具體內容如下

java如何實現動態時鐘并設置鬧鐘功能

顯示如上圖所示的動態時鐘,并且可以設置鬧鐘,播放mp3。

首先用到的是時鐘(Timer)和日歷(Calendar)得到系統的當前時間。

代碼如下:

import java.awt.Graphics; 
import java.awt.Graphics2D; 
import java.awt.geom.Ellipse2D; 
import java.awt.geom.Line2D; 
import java.io.BufferedInputStream; 
import java.io.File; 
import java.io.FileInputStream; 
import java.io.IOException; 
import java.util.Calendar; 
import java.util.GregorianCalendar; 
import java.util.Timer; 
import java.util.TimerTask; 
 
import javax.media.CannotRealizeException; 
import javax.media.Manager; 
import javax.media.MediaLocator; 
import javax.media.NoPlayerException; 
import javax.swing.JFrame; 
import javax.swing.JOptionPane; 
import javax.swing.JPanel; 
 
import javazoom.jl.player.Player; 
 
 
public class Clock extends JFrame { 
 
 MyPanel clockPanel; 
 Ellipse2D.Double e; 
 int x; 
 int y; 
 Line2D.Double hourLine; 
 Line2D.Double minLine; 
 Line2D.Double secondLine; 
 GregorianCalendar calendar; 
  
 int hour; 
 int minute; 
 int second; 
 String timestr = ""; 
  
 static int sethour; 
 static int setminute; 
 static int setsecond;  
  
 public static final int X = 60; 
 public static final int Y = 60; 
 public static final int X_BEGIN = 10; 
 public static final int Y_BEGIN = 10; 
 public static final int RADIAN = 50; 
  
 public Clock(){ 
  setSize(300, 200); 
  setTitle("動態時鐘"); 
  clockPanel = new MyPanel(); 
  add(clockPanel); 
  Timer t = new Timer(); 
  Task task = new Task(); 
  t.schedule(task, 0, 1000);//每秒刷新一次 
 } 
  
 File file = new File("當我想你的時候.mp3"); 
  
 public static void playMusic(File file) { //顯示mp3文件的絕對路徑 
  try { 
   javax.media.Player player = null; 
   if (file.exists()) { 
 MediaLocator locator = new MediaLocator("file:" 
        + file.getAbsolutePath()); 
 System.out.println(file.getAbsolutePath()); 
   player = Manager.createRealizedPlayer(locator); 
     player.prefetch();// ?準備讀取 
   player.start();// 開始讀取 
    } else { 
     System.out.println("沒找到文件"); 
    } 
    } catch (CannotRealizeException ex) { 
     ex.printStackTrace(); 
    } catch (NoPlayerException ex) { 
     ex.printStackTrace(); 
    } catch (IOException ex) { 
    ex.printStackTrace(); 
    } 
   } 
 
 public void play() {//播放mp3文件 
  try { 
   BufferedInputStream buffer = new BufferedInputStream(new FileInputStream("當我想你的時候.mp3")); 
   Player player = new Player(buffer); 
   player.play(); 
  } catch (Exception e) { 
   System.out.println(e); 
  }  
 } 
  
 public static void main(String[] args) { 
  Clock t = new Clock(); 
  t.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
  t.setVisible(true); 
  //t.setLocationRelativeTo(null);//窗體顯示在屏幕中央 
   
  //輸入要設置的鬧鐘時間 
  sethour = Integer.parseInt(JOptionPane.showInputDialog("請輸入小時:")); 
  setminute = Integer.parseInt(JOptionPane.showInputDialog("請輸入分鐘:")); 
  setsecond = Integer.parseInt(JOptionPane.showInputDialog("請輸入秒:")); 
   
 } 
 
class MyPanel extends JPanel { 
 public MyPanel() { 
  e = new Ellipse2D.Double(X_BEGIN, Y_BEGIN, 100, 100); 
  hourLine = new Line2D.Double(X, Y, X, Y); 
  minLine = new Line2D.Double(X, Y, X, Y); 
  secondLine = new Line2D.Double(X, Y, X, Y); 
 } 
 
 public void paintComponent(Graphics g) { 
  super.paintComponent(g); 
  Graphics2D g2 = (Graphics2D) g; 
  g2.drawString("12", 55, 25);//整點時間 
  g2.drawString("6", 55, 105); 
  g2.drawString("9", 15, 65); 
  g2.drawString("3", 100, 65); 
  g2.drawString(timestr, 0, 130); 
  g2.draw(e); 
  g2.draw(hourLine);//時針 
  g2.draw(minLine);//分針 
  g2.draw(secondLine);//秒針 
 } 
} 
 
class Task extends TimerTask { 
 public void run() { 
  calendar = new GregorianCalendar(); 
  hour = calendar.get(Calendar.HOUR); 
  minute = calendar.get(Calendar.MINUTE); 
  second = calendar.get(Calendar.SECOND); 
   
  if(sethour == hour && setminute == minute && setsecond == second){ 
   playMusic(file); 
   play(); 
   } 
   
  timestr = "當前時間:" + hour + " : " + minute + " : " + second; 
   
  hourLine.x2 = X + 40 * Math.cos(hour * (Math.PI / 6) - Math.PI / 2); 
  hourLine.y2 = Y + 40 * Math.sin(hour * (Math.PI / 6) - Math.PI / 2); 
  minLine.x2 = X + 45 
    * Math.cos(minute * (Math.PI / 30) - Math.PI / 2); 
  minLine.y2 = Y + 45 
    * Math.sin(minute * (Math.PI / 30) - Math.PI / 2); 
  secondLine.x2 = X + 50 
    * Math.cos(second * (Math.PI / 30) - Math.PI / 2); 
  secondLine.y2 = Y + 50 
    * Math.sin(second * (Math.PI / 30) - Math.PI / 2); 
  repaint(); 
  } 
 } 
}

其中播放mp3文件需要下載對應的jar包,否則不能播放。

感謝各位的閱讀!關于“java如何實現動態時鐘并設置鬧鐘功能”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

左贡县| 三都| 绥滨县| 南木林县| 景宁| 吉木乃县| 福海县| 冀州市| 绥滨县| 寻甸| 长顺县| 文登市| 新蔡县| 博野县| 理塘县| 遂川县| 昭苏县| 贵溪市| 图们市| 包头市| 韶山市| 喜德县| 读书| 绥棱县| 定远县| 华容县| 嵊州市| 巢湖市| 招远市| 襄垣县| 南昌县| 阳原县| 南开区| 太保市| 新兴县| 徐汇区| 花莲市| 宜君县| 寿宁县| 江源县| 东海县|