国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Java > 正文

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

2024-07-13 10:17:15
字體:
來源:轉載
供稿:網友

本文實例為大家分享了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實現動態時鐘

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 合江县| 廉江市| 河曲县| 舞阳县| 荥阳市| 冷水江市| 吉林市| 靖边县| 镇宁| 蛟河市| 武义县| 汉寿县| 乐业县| 钦州市| 苍山县| 涡阳县| 兴隆县| 凌云县| 崇州市| 上虞市| 玛沁县| 大荔县| 三明市| 元江| 涿州市| 临朐县| 西藏| 密山市| 潮安县| 通海县| 永登县| 宜川县| 哈密市| 静海县| 凤山市| 宝鸡市| 磴口县| 四川省| 香格里拉县| 饶阳县| 辰溪县|