java开发之闹钟的实现代码

项目结构:

效果图一:

效果图二:

效果图三:

关于闹钟:

==========================================================

/Alarm/src/com/b510/main/AlarmMain.java

代码如下:
package com.b510.main; import com.b510.ui.main.MyAlarm; /**  *   * @author Hongten  */ public class AlarmMain {     public static void main(String[] args) {         new MyAlarm("Alarm hongten v-1.0");     } }
/Alarm/src/com/b510/menu/AlarmBackground.java
代码如下:
package com.b510.menu; /**  * @author Hongten  *  * @time 2012-3-4  2012  */ public class AlarmBackground {     /**      * 默认的背景图片      */     private static String BACKGROUND_DEFAULT="src/image/background.png";     /**      * 水果系列      */     private static String BACKGROUND_FRUIT="src/image/background1.png";     /**      * 自行车系列      */     private static String BACKGROUND_BICK="src/image/background2.png";     /**      * 背景图片的list      */     private static String[] backgroundList={BACKGROUND_DEFAULT,BACKGROUND_FRUIT,BACKGROUND_BICK};     /**      * 获取背景图片的list的长度      * @return 返回背景图片的list的长度      */     public static int getBackgroundListSize(){         return backgroundList.length;     }     public static String getBackground(int bg){         return backgroundList[bg];     } }
/Alarm/src/com/b510/menu/AlarmFile.java
代码如下:
package com.b510.menu; /**  *  * @author Hongten  * 菜单-文件  */ public class AlarmFile {     /**      * 退出程序      */     public static void exit(){         System.exit(0);     } }
/Alarm/src/com/b510/menu/AlarmHelp.java
代码如下:
/*  * To change this template, choose Tools | Templates  * and open the template in the editor.  */ package com.b510.menu; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import com.b510.ui.main.MyAlarm; /**  *   * @author Hongten 菜单-帮助  */ public class AlarmHelp extends JFrame {     /**      * 版本号      */     private static final long serialVersionUID = 5248482602468160509L;     public AlarmHelp(String title) {         super(title);         initComponents();         addWindowListener(new WindowAdapter() {             public void windowClosing(WindowEvent e) {                 AlarmHelp.this.setVisible(false);         }});     }     /**      *关闭按钮      */     private JButton closeButton = new JButton();     /**      * 应用程序名称      */     javax.swing.JLabel appTitleLabel = new javax.swing.JLabel();     /**      * 版本号 前      */     javax.swing.JLabel versionLabel = new javax.swing.JLabel();     /**      * 版本号      */     javax.swing.JLabel appVersionLabel = new javax.swing.JLabel();     /**      * 主页 前      */     javax.swing.JLabel homepageLabel = new javax.swing.JLabel();     /**      * Homepage      */     javax.swing.JLabel appHomepageLabel = new javax.swing.JLabel();     /**      * 说明      */     javax.swing.JLabel appDescLabel = new javax.swing.JLabel();     /**      * 图片      */     javax.swing.JLabel imageLabel = new javax.swing.JLabel();      private void initComponents() {         this.setVisible(true);         // 设置大小不能变         setResizable(false);         this.setLocation(MyAlarm.pointX+60, MyAlarm.pointY+190);// 设置窗体的初始位置         closeButton.addMouseListener(new MouseAdapter() {              public void mouseEntered(java.awt.event.MouseEvent evt) {                    closeButton.setIcon(new ImageIcon("src/image/biao2.png"));                 }              public void mouseExited(MouseEvent evt){                  closeButton.setIcon(new ImageIcon("src/image/biao.png"));              }         });         appTitleLabel.setFont(appTitleLabel.getFont().deriveFont(                 appTitleLabel.getFont().getStyle() | java.awt.Font.BOLD,                 appTitleLabel.getFont().getSize() + 4));         appTitleLabel.setText("应用程序名称:"); // NOI18N         appTitleLabel.setName("appTitleLabel"); // NOI18N         versionLabel.setFont(versionLabel.getFont().deriveFont(                 versionLabel.getFont().getStyle() | java.awt.Font.BOLD));         versionLabel.setText("版本号:"); // NOI18N         versionLabel.setName("versionLabel"); // NOI18N         appVersionLabel.setText("1.0"); // NOI18N         appVersionLabel.setName("appVersionLabel"); // NOI18N         homepageLabel.setFont(homepageLabel.getFont().deriveFont(                 homepageLabel.getFont().getStyle() | java.awt.Font.BOLD));         homepageLabel.setText("主页:"); // NOI18N         homepageLabel.setName("homepageLabel"); // NOI18N         appHomepageLabel.setText("http://www.cnblogs.com/hongten"); // NOI18N         appHomepageLabel.setName("appHomepageLabel"); // NOI18N         appDescLabel.setText("这是一个小应用程序,闹钟"); // NOI18N         appDescLabel.setName("appDescLabel"); // NOI18N         imageLabel                 .setIcon(new ImageIcon("src/image/about.png")); // NOI18N         imageLabel.setName("imageLabel"); // NOI18N         closeButton                 .setIcon(new ImageIcon("src/image/biao.png"));         javax.swing.GroupLayout layout = new javax.swing.GroupLayout(                 getContentPane());         getContentPane().setLayout(layout);         layout                 .setHorizontalGroup(layout                         .createParallelGroup(                                 javax.swing.GroupLayout.Alignment.LEADING)                         .addGroup(                                 layout                                         .createSequentialGroup()                                         .addComponent(imageLabel)                                         .addGap(18, 18, 18)                                         .addGroup(                                                 layout                                                         .createParallelGroup(                                                                 javax.swing.GroupLayout.Alignment.TRAILING)                                                         .addGroup(                                                                 javax.swing.GroupLayout.Alignment.LEADING,                                                                 layout                                                                         .createSequentialGroup()                                                                         .addGroup(                                                                                 layout                                                                                         .createParallelGroup(                                                                                                 javax.swing.GroupLayout.Alignment.LEADING)                                                                                         .addComponent(                                                                                                 versionLabel)                                                                                         .addComponent(                                                                                                 homepageLabel))                                                                         .addPreferredGap(                                                                                 javax.swing.LayoutStyle.ComponentPlacement.RELATED)                                                                         .addGroup(                                                                                 layout                                                                                         .createParallelGroup(                                                                                                 javax.swing.GroupLayout.Alignment.LEADING)                                                                                         .addComponent(                                                                                                 appVersionLabel)                                                                                         .addComponent(                                                                                                 appHomepageLabel)))                                                         .addComponent(                                                                 appTitleLabel,                                                                 javax.swing.GroupLayout.Alignment.LEADING)                                                         .addComponent(                                                                 appDescLabel,                                                                 javax.swing.GroupLayout.Alignment.LEADING,                                                                 javax.swing.GroupLayout.DEFAULT_SIZE,                                                                 266,                                                                 Short.MAX_VALUE)                                                         .addComponent(                                                                 closeButton))                                         .addContainerGap()));         layout                 .setVerticalGroup(layout                         .createParallelGroup(                                 javax.swing.GroupLayout.Alignment.LEADING)                         .addComponent(imageLabel,                                 javax.swing.GroupLayout.PREFERRED_SIZE,                                 javax.swing.GroupLayout.DEFAULT_SIZE,                                 Short.MAX_VALUE)                         .addGroup(                                 layout                                         .createSequentialGroup()                                         .addContainerGap()                                         .addComponent(appTitleLabel)                                         .addPreferredGap(                                                 javax.swing.LayoutStyle.ComponentPlacement.RELATED)                                         .addComponent(                                                 appDescLabel,                                                 javax.swing.GroupLayout.PREFERRED_SIZE,                                                 javax.swing.GroupLayout.DEFAULT_SIZE,                                                 javax.swing.GroupLayout.PREFERRED_SIZE)                                         .addPreferredGap(                                                 javax.swing.LayoutStyle.ComponentPlacement.RELATED)                                         .addGroup(                                                 layout                                                         .createParallelGroup(                                                                 javax.swing.GroupLayout.Alignment.BASELINE)                                                         .addComponent(                                                                 versionLabel)                                                         .addComponent(                                                                 appVersionLabel))                                         .addPreferredGap(                                                 javax.swing.LayoutStyle.ComponentPlacement.RELATED)                                         .addGroup(                                                 layout                                                         .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE))                                         .addPreferredGap(                                                 javax.swing.LayoutStyle.ComponentPlacement.RELATED)                                         .addGroup(                                                 layout                                                         .createParallelGroup(                                                                 javax.swing.GroupLayout.Alignment.BASELINE)                                                         .addComponent(                                                                 homepageLabel)                                                         .addComponent(                                                                 appHomepageLabel))                                         .addPreferredGap(                                                 javax.swing.LayoutStyle.ComponentPlacement.RELATED,                                                 19, Short.MAX_VALUE)                                         .addComponent(closeButton)                                         .addContainerGap()));         pack();     } }
/Alarm/src/com/b510/menu/AlarmTools.java
代码如下:
/*  * To change this template, choose Tools | Templates  * and open the template in the editor.  */ package com.b510.menu; import mai.capture.DesktopCapture; /**  *  * @author Hongten  * 菜单-工具  */ public class AlarmTools {     /** 定义截图功能 */     @SuppressWarnings("unused")     private static DesktopCapture deskTopCapture;     /**      * 截图      */     public static void screenshot(){         deskTopCapture=new DesktopCapture();     } }
/Alarm/src/com/b510/ui/main/MyAlarm.java
代码如下:
package com.b510.ui.main; import java.awt.Color; import java.awt.Graphics; import java.awt.Point; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.File; import java.io.IOException; import java.util.Calendar; import javax.sound.sampled.AudioFormat; import javax.sound.sampled.AudioInputStream; import javax.sound.sampled.AudioSystem; import javax.sound.sampled.DataLine; import javax.sound.sampled.SourceDataLine; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import com.b510.menu.AlarmBackground; import com.b510.menu.AlarmFile; import com.b510.menu.AlarmHelp; import com.b510.menu.AlarmTools; /**  *   * @author Hongten  */ public class MyAlarm extends JFrame implements ActionListener {     /**      *+1      */     private javax.swing.JButton add1;     /**      * +30      */     private javax.swing.JButton add30;     /**      * +5      */     private javax.swing.JButton add5;     /**      * 时      */     private javax.swing.JComboBox dorp_down_hours;     /**      * 分      */     private javax.swing.JComboBox dorp_down_minute;     /**      * 秒      */     private javax.swing.JComboBox drop_down_second;     /**      * 试听      */     private javax.swing.JButton listening_test;     /**      * 试听-停止      */     private javax.swing.JButton listening_test_stop;     /**      * 主Panel      */     private javax.swing.JPanel mainPanel;     /**      * 菜单bar      */     private javax.swing.JMenuBar menuBar;     /**      * -1      */     private javax.swing.JButton minus1;     /**      * -30      */     private javax.swing.JButton minus30;     /**      * -5      */     private javax.swing.JButton minus5;     /**      * 当前时间      */     private javax.swing.JLabel now;     /**      * 铃声      */     private javax.swing.JComboBox ring_setup;     /**      * 截屏      */     private javax.swing.JMenuItem screenshot;     /**      * 更改背景图片      */     private javax.swing.JMenuItem changeBackground;     /**      * 停止      */     private javax.swing.JButton stop;     /**      * 工具      */     private javax.swing.JMenu tools;     /**      * 帮助      */     private javax.swing.JMenu help;     /**      * 关于      */     private javax.swing.JMenuItem about;     /**      * 退出      */     private javax.swing.JMenuItem exit;     /**      * 上传铃声      */     private javax.swing.JMenuItem uploadRing;     /**      * wenjian      */     private javax.swing.JMenu file;     /**      * 结果,即剩余时间      */     private JLabel result;     /**      * 分割线      */     private javax.swing.JSeparator line;     /**      * 变量-->小时      */     private String h;     /**      * 变量-->分钟      */     private String m;     /**      * 变量-->秒      */     private String s;     /**      * 线程的一个标志      */     private boolean running = true;     /**      * 定义图盘图盘标志      */     public boolean iconed = false;     /**      * 背景图片选择标志      */     private int background = 0;     /**      * 获取result的秒数      */     private int secondOfResult;     /**      * 更改背景图片的标志      */     private boolean flagOfBackground = false;     /**      * MyAlarm的X坐标      */     public static int pointX = 0;     /**      * MyAlarm的Y坐标      */     public static int pointY = 0;     /** 定义托盘 */     MyTray myTray;     /**      * 版本号      */     private static final long serialVersionUID = -6601825053136983041L;     public MyAlarm(String title) {         this.setTitle(title);         init();     }     /**      * 初始化背景图片      */     public void initMainPanel() {         mainPanel = new JPanel() {             private static final long serialVersionUID = 1L;             protected void paintComponent(Graphics g) {                 ImageIcon icon = new ImageIcon(AlarmBackground                         .getBackground(background));                 g.drawImage(icon.getImage(), 0, 0, 545, 463, null);             }         };     }     /**      * 主界面初始化      */     public void init() {         initMainPanel();         now = new javax.swing.JLabel();         stop = new javax.swing.JButton();         add1 = new javax.swing.JButton();         add5 = new javax.swing.JButton();         add30 = new javax.swing.JButton();         minus1 = new javax.swing.JButton();         minus5 = new javax.swing.JButton();         minus30 = new javax.swing.JButton();         listening_test = new javax.swing.JButton();         listening_test_stop = new javax.swing.JButton();         dorp_down_hours = new javax.swing.JComboBox();         dorp_down_minute = new javax.swing.JComboBox();         drop_down_second = new javax.swing.JComboBox();         ring_setup = new javax.swing.JComboBox();         menuBar = new javax.swing.JMenuBar();         file = new javax.swing.JMenu();         uploadRing = new javax.swing.JMenuItem();         exit = new javax.swing.JMenuItem();         tools = new javax.swing.JMenu();         screenshot = new javax.swing.JMenuItem();         changeBackground = new javax.swing.JMenuItem();         help = new javax.swing.JMenu();         about = new javax.swing.JMenuItem();         line = new javax.swing.JSeparator();         result = new javax.swing.JLabel();         mainPanel.setName("mainPanel"); // NOI18N         result.setForeground(Color.RED);         result.setName("result");         result.setVisible(false);         now.setFont(now.getFont().deriveFont(                 now.getFont().getStyle() | java.awt.Font.BOLD,                 now.getFont().getSize() + 70));         now.setName("now"); // NOI18N         // 时间监听器,得到系统时间和设置好时间后,得到剩余时间         timeListener();         stop.setText("stop"); // NOI18N         stop.setName("stop"); // NOI18N         // 初始化的时候是不可见的         stop.setVisible(false);         stop.addActionListener(this);         add1.setText("+1"); // NOI18N         add1.setName("add1"); // NOI18N         add1.addActionListener(this);         add5.setText("+5"); // NOI18N         add5.setName("add5"); // NOI18N         add5.addActionListener(this);         add30.setText("+30"); // NOI18N         add30.setName("add30"); // NOI18N         add30.addActionListener(this);         minus1.setText("-1"); // NOI18N         minus1.setName("minus1"); // NOI18N         minus1.addActionListener(this);         minus5.setText("-5"); // NOI18N         minus5.setName("minus5"); // NOI18N         minus5.addActionListener(this);         minus30.setText("-30"); // NOI18N         minus30.setName("minus30"); // NOI18N         minus30.addActionListener(this);         listening_test.setText("试听"); // NOI18N         listening_test.setName("listening_test"); // NOI18N         listening_test.addActionListener(this);         listening_test_stop.setText("停止"); // NOI18N         listening_test_stop.setName("listening_test_stop"); // NOI18N         listening_test_stop.addActionListener(this);         dorp_down_hours.setModel(new javax.swing.DefaultComboBoxModel(                 new String[] { "关闭", "00", "01", "02", "03", "04", "05", "06",                         "07", "08", "09", "10", "11", "12", "13", "14", "15",                         "16", "17", "18", "19", "20", "21", "22", "23" }));         dorp_down_hours.setName("dorp_down_hours"); // NOI18N         dorp_down_hours.addActionListener(this);         dorp_down_minute.setModel(new javax.swing.DefaultComboBoxModel(                 new String[] { "关闭", "00", "01", "02", "03", "04", "05", "06",                         "07", "08", "09", "10", "11", "12", "13", "14", "15",                         "16", "17", "18", "19", "20", "21", "22", "23", "24",                         "25", "26", "27", "28", "29", "30", "31", "32", "33",                         "34", "35", "36", "37", "38", "39", "40", "41", "42",                         "43", "44", "45", "46", "47", "48", "49", "50", "51",                         "52", "53", "54", "55", "56", "57", "58", "59" }));         dorp_down_minute.setName("dorp_down_minute"); // NOI18N         dorp_down_minute.addActionListener(this);         drop_down_second.setModel(new javax.swing.DefaultComboBoxModel(                 new String[] { "关闭", "00", "01", "02", "03", "04", "05", "06",                         "07", "08", "09", "10", "11", "12", "13", "14", "15",                         "16", "17", "18", "19", "20", "21", "22", "23", "24",                         "25", "26", "27", "28", "29", "30", "31", "32", "33",                         "34", "35", "36", "37", "38", "39", "40", "41", "42",                         "43", "44", "45", "46", "47", "48", "49", "50", "51",                         "52", "53", "54", "55", "56", "57", "58", "59" }));         drop_down_second.setName("drop_down_second"); // NOI18N         drop_down_second.addActionListener(this);         ring_setup.setModel(new javax.swing.DefaultComboBoxModel(new String[] {                 "铃声一", "铃声二", "铃声三", "铃声四", "铃声五", "铃声六", "铃声七" }));         ring_setup.setName("ring_setup"); // NOI18N         // 主要的布局         omponentLayout();         menuBar.setName("menuBar"); // NOI18N         file.setText("文件"); // NOI18N         file.setName("file"); // NOI18N         uploadRing.setText("上传铃声"); // NOI18N         uploadRing.setName("uploadRing"); // NOI18N         uploadRing.addActionListener(this);         file.add(uploadRing);         file.add(line);         exit.setText("退出");         exit.setName("exit"); // NOI18N         exit.addActionListener(this);         file.add(exit);         menuBar.add(file);         tools.setText("工具"); // NOI18N         tools.setName("tools"); // NOI18N         screenshot.setText("截图工具"); // NOI18N         screenshot.setName("screenshot"); // NOI18N         screenshot.addActionListener(this);         tools.add(screenshot);         changeBackground.setText("更改背景");         changeBackground.setName("changeBackground");         changeBackground.addActionListener(this);         tools.add(changeBackground);         menuBar.add(tools);         help.setText("帮助"); // NOI18N         help.setName("help"); // NOI18N         about.setText("关于软件");         about.setName("about"); // NOI18N         about.addActionListener(this);         help.add(about);         menuBar.add(help);         this.add(mainPanel);         setJMenuBar(menuBar);         this.setVisible(true);         this.setSize(550, 516);         // this.pack();         this.setLocationRelativeTo(null);         this.setResizable(false);         // this.setLocation(470, 250);         // this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);         // 当点击"-"最小化按钮时,系统会最小化到托盘         addWindowListener(new WindowAdapter() {             public void windowIconified(WindowEvent e) {                 iconed = true;                 setVisible(false);             }             public void windowClosing(WindowEvent e) {                 // 当点击"X"关闭窗口按钮时,会询问用户是否要最小化到托盘                 // 是,表示最小化到托盘,否,表示退出                 int option = JOptionPane.showConfirmDialog(MyAlarm.this,                         "是否最小化到托盘?", "提示:", JOptionPane.YES_NO_OPTION);                 if (option == JOptionPane.YES_OPTION) {                     iconed = true;                     MyAlarm.this.setVisible(false);                 } else {                     AlarmFile.exit();                 }             }         });         // 初始化自定义托盘         myTray = new MyTray(MyAlarm.this);     }     /**      * 组件的布局,不要轻易动啊      */     private void omponentLayout() {         javax.swing.GroupLayout mainPanelLayout = new javax.swing.GroupLayout(                 mainPanel);         mainPanel.setLayout(mainPanelLayout);         mainPanelLayout                 .setHorizontalGroup(mainPanelLayout                         .createParallelGroup(                                 javax.swing.GroupLayout.Alignment.LEADING)                         .addGroup(                                 javax.swing.GroupLayout.Alignment.TRAILING,                                 mainPanelLayout                                         .createSequentialGroup()                                         .addContainerGap(170, Short.MAX_VALUE)                                         .addGroup(                                                 mainPanelLayout                                                         .createParallelGroup(                                                                 javax.swing.GroupLayout.Alignment.LEADING)                                                         .addGroup(                                                                 mainPanelLayout                                                                         .createSequentialGroup()                                                                         .addComponent(                                                                                 result)                                                                         .addContainerGap())                                                         .addGroup(                                                                 javax.swing.GroupLayout.Alignment.TRAILING,                                                                 mainPanelLayout                                                                         .createParallelGroup(                                                                                 javax.swing.GroupLayout.Alignment.LEADING)                                                                         .addGroup(                                                                                 mainPanelLayout                                                                                         .createSequentialGroup()                                                                                         .addComponent(                                                                                                 now,                                                                                                 javax.swing.GroupLayout.DEFAULT_SIZE,                                                                                                 483,                                                                                                 Short.MAX_VALUE)                                                                                         .addContainerGap())                                                                         .addGroup(                                                                                 javax.swing.GroupLayout.Alignment.TRAILING,                                                                                 mainPanelLayout                                                                                         .createSequentialGroup()                                                                                         .addGroup(                                                                                                 mainPanelLayout                                                                                                         .createParallelGroup(                                                                                                                 javax.swing.GroupLayout.Alignment.LEADING)                                                                                                         .addGroup(                                                                                                                 mainPanelLayout                                                                                                                         .createSequentialGroup()                                                                                                                         .addComponent(                                                                                                                                 dorp_down_hours,                                                                                                                                 javax.swing.GroupLayout.PREFERRED_SIZE,                                                                                                                                 74,                                                                                                                                 javax.swing.GroupLayout.PREFERRED_SIZE)                                                                                                                         .addPreferredGap(                                                                                                                                 javax.swing.LayoutStyle.ComponentPlacement.RELATED)                                                                                                                         .addComponent(                                                                                                                                 dorp_down_minute,                                                                                                                                 javax.swing.GroupLayout.PREFERRED_SIZE,                                                                                                                                 65,                                                                                                                                 javax.swing.GroupLayout.PREFERRED_SIZE)                                                                                                                         .addPreferredGap(                                                                                                                                 javax.swing.LayoutStyle.ComponentPlacement.RELATED)                                                                                                                         .addComponent(                                                                                                                                 drop_down_second,                                                                                                                                 javax.swing.GroupLayout.PREFERRED_SIZE,                                                                                                                                 62,                                                                                                                                 javax.swing.GroupLayout.PREFERRED_SIZE)                                                                                                                         .addPreferredGap(                                                                                                                                 javax.swing.LayoutStyle.ComponentPlacement.RELATED)                                                                                                                         .addComponent(                                                                                                                                 stop))                                                                                                         .addGroup(                                                                                                                 mainPanelLayout                                                                                                                         .createSequentialGroup()                                                                                                                         .addComponent(                                                                                                                                 add1)                                                                                                                         .addPreferredGap(                                                                                                                                 javax.swing.LayoutStyle.ComponentPlacement.RELATED)                                                                                                                         .addComponent(                                                                                                                                 add5)                                                                                                                         .addPreferredGap(                                                                                                                                 javax.swing.LayoutStyle.ComponentPlacement.RELATED)                                                                                                                         .addComponent(                                                                                                                                 add30)                                                                                                                         .addPreferredGap(                                                                                                                                 javax.swing.LayoutStyle.ComponentPlacement.RELATED)                                                                                                                         .addComponent(                                                                                                                                 minus1)                                                                                                                         .addPreferredGap(                                                                                                                                 javax.swing.LayoutStyle.ComponentPlacement.RELATED)                                                                                                                         .addComponent(                                                                                                                                 minus5)                                                                                                                         .addPreferredGap(                                                                                                                                 javax.swing.LayoutStyle.ComponentPlacement.RELATED)                                                                                                                         .addComponent(                                                                                                                                 minus30))                                                                                                         .addGroup(                                                                                                                 mainPanelLayout                                                                                                                         .createSequentialGroup()                                                                                                                         .addComponent(                                                                                                                                 ring_setup,                                                                                                                                 javax.swing.GroupLayout.PREFERRED_SIZE,                                                                                                                                 javax.swing.GroupLayout.DEFAULT_SIZE,                                                                                                                                 javax.swing.GroupLayout.PREFERRED_SIZE)                                                                                                                         .addPreferredGap(                                                                                                                                 javax.swing.LayoutStyle.ComponentPlacement.RELATED)                                                                                                                         .addComponent(                                                                                                                                 listening_test)                                                                                                                         .addPreferredGap(                                                                                                                                 javax.swing.LayoutStyle.ComponentPlacement.RELATED)                                                                                                                         .addComponent(                                                                                                                                 listening_test_stop)))                                                                                         .addGap(                                                                                                 73,                                                                                                 73,                                                                                                 73))))));         mainPanelLayout                 .setVerticalGroup(mainPanelLayout                         .createParallelGroup(                                 javax.swing.GroupLayout.Alignment.LEADING)                         .addGroup(                                 javax.swing.GroupLayout.Alignment.TRAILING,                                 mainPanelLayout                                         .createSequentialGroup()                                         .addGap(120, 120, 120)                                         .addComponent(result)                                         .addGap(24, 24, 24)                                         .addComponent(                                                 now,                                                 javax.swing.GroupLayout.DEFAULT_SIZE,                                                 javax.swing.GroupLayout.DEFAULT_SIZE,                                                 Short.MAX_VALUE)                                         .addGap(36, 36, 36)                                         .addGroup(                                                 mainPanelLayout                                                         .createParallelGroup(                                                                 javax.swing.GroupLayout.Alignment.BASELINE)                                                         .addComponent(                                                                 dorp_down_hours,                                                                 javax.swing.GroupLayout.PREFERRED_SIZE,                                                                 javax.swing.GroupLayout.DEFAULT_SIZE,                                                                 javax.swing.GroupLayout.PREFERRED_SIZE)                                                         .addComponent(                                                                 dorp_down_minute,                                                                 javax.swing.GroupLayout.PREFERRED_SIZE,                                                                 javax.swing.GroupLayout.DEFAULT_SIZE,                                                                 javax.swing.GroupLayout.PREFERRED_SIZE)                                                         .addComponent(                                                                 drop_down_second,                                                                 javax.swing.GroupLayout.PREFERRED_SIZE,                                                                 javax.swing.GroupLayout.DEFAULT_SIZE,                                                                 javax.swing.GroupLayout.PREFERRED_SIZE)                                                         .addComponent(stop))                                         .addPreferredGap(                                                 javax.swing.LayoutStyle.ComponentPlacement.RELATED)                                         .addGroup(                                                 mainPanelLayout                                                         .createParallelGroup(                                                                 javax.swing.GroupLayout.Alignment.BASELINE)                                                         .addComponent(add1)                                                         .addComponent(add5)                                                         .addComponent(add30)                                                         .addComponent(minus1)                                                         .addComponent(minus5)                                                         .addComponent(minus30))                                         .addGap(13, 13, 13)                                         .addGroup(                                                 mainPanelLayout                                                         .createParallelGroup(                                                                 javax.swing.GroupLayout.Alignment.BASELINE)                                                         .addComponent(                                                                 ring_setup,                                                                 javax.swing.GroupLayout.PREFERRED_SIZE,                                                                 javax.swing.GroupLayout.DEFAULT_SIZE,                                                                 javax.swing.GroupLayout.PREFERRED_SIZE)                                                         .addComponent(                                                                 listening_test)                                                         .addComponent(                                                                 listening_test_stop))                                         .addGap(58, 58, 58)));     }     /**      * 时间监听器,得到系统时间和设置好时间后,得到剩余时间      */     public void timeListener() {         new Thread(new Runnable() {// 设置一个线程                     public void run() {                         while (true) {                             try {                                 Thread.sleep(1000);                             } catch (Exception e) {                                 e.printStackTrace();                             }                             initMainPanel();                             now.setText(now());// 得到系统时间                             result.setText(surplus_time());// 得到剩余时间                         }                     }                 }).start();     }     /**      * 播放声音的监听器      */     public void myListener() {         new Thread(new Runnable() {// 设置一个线程                     public void run() {                         while (true) {                             try {                                 Thread.sleep(1000);                             } catch (Exception e) {                                 e.printStackTrace();                             }                             executeSound();// 播放声音                         }                     }                 }).start();     }     /**      * 获取返回结果      *       * @return result值      */     public String surplus_time() {         String r = null;         // 获取系统时,分,秒         int h = getHour();         int m = getMunite();         int s = getSecond();         // 获取设置的响铃时间         int dh = 0;         int dm = 0;         int ds = 0;         if (dorp_down_hours.getSelectedIndex() != 0) {             dh = dorp_down_hours.getSelectedIndex() - 1;         }         if (dorp_down_minute.getSelectedIndex() != 0) {             dm = dorp_down_minute.getSelectedIndex() - 1;         }         if (drop_down_second.getSelectedIndex() != 0) {             ds = drop_down_second.getSelectedIndex() - 1;         }         int hour = dh - h;         int min = dm - m;         int sec = ds - s;         if (hour == 0) {             if (min == 0) {                 if (sec == 0) {                     r = "时间到了哦!";                 }                 if (sec < 0) {                     hour += 23;                     min += 59;                     sec += 59;                 }             }             if (min < 0) {                 hour += 23;                 if (sec < 0) {                     min -= 1;                     sec += 59;                 }                 min += 60;             }             if (min >= 0) {                 if (sec < 0 || sec == 0) {                     min -= 1;                     sec += 59;                 }                 if (sec > 0) {                     // sec=sec;                 }             }         }         if (hour < 0) {             if (min <= 0) {                 if (sec <= 0) {                     hour -= 1;                     min += 59;                     sec += 59;                 }             }             if (min > 0) {                 if (sec <= 0) {                     min -= 1;                     sec += 59;                 }             }             hour += 24;         }         if (hour > 0) {             if (min == 0) {                 if (sec <= 0) {                     hour -= 1;                     min += 59;                     sec += 59;                 }             }             if (min < 0) {                 if (sec < 0) {                     min -= 1;                     sec += 59;                 }                 min += 60;                 hour -= 1;             }             if (min > 0) {                 if (sec < 0 || sec == 0) {                     min -= 1;                     sec += 59;                 }             }         }         if (sec == 30 && min == 0 && hour == 0) {             setSecondOfResult(sec);         }         r = new String("剩:" + hour + "时" + min + "分" + sec + "秒");         if (hour == 0 && min == 0 && sec < 0) {             r = "时间到了哦!";         }         // result.setText(r);         return r;     }     public int getSecondOfResult() {         return secondOfResult;     }     public void setSecondOfResult(int sec) {         this.secondOfResult = sec;     }     public boolean getFlagOfBackground() {         return flagOfBackground;     }     public void setFlagOfBackground(boolean flag) {         this.flagOfBackground = flag;     }     /**      * 时间到了的时候就播放声音      */     public void executeSound() {         // 获取系统时,分,秒         int h = getHour();         int m = getMunite();         int s = getSecond();         // 获取设置的响铃时间         int dh = 0;         int dm = 0;         int ds = 0;         if (dorp_down_hours.getSelectedIndex() != 0) {             dh = dorp_down_hours.getSelectedIndex() - 1;         }         if (dorp_down_minute.getSelectedIndex() != 0) {             dm = dorp_down_minute.getSelectedIndex() - 1;         }         if (drop_down_second.getSelectedIndex() != 0) {             ds = drop_down_second.getSelectedIndex() - 1;         }         int hour = dh - h;         int min = dm - m;         int sec = ds - s;         if (hour == 0 && min == 0 && sec == 0) {             // 主窗体设置为可见             setVisible(true);             // 设置窗口前端显示             setExtendedState(JFrame.NORMAL);             setAlwaysOnTop(true);             // 播放声音             new Thread(new AlarmSound(ring_setup.getSelectedIndex())).start();             // 震动             shack();         }     }     /**      * 得到系统时间当前时间,并返回      *       * @return 返回系统当前时间      */     public String now() {         Calendar calendar = Calendar.getInstance();         int hour = calendar.get(Calendar.HOUR_OF_DAY);         int min = calendar.get(Calendar.MINUTE);         int sec = calendar.get(Calendar.SECOND);         // 小于10的时候,在前面加0         String h = hour < 10 ? "0" : "";         String m = min < 10 ? "0" : "";         String s = sec < 10 ? "0" : "";         String current = new String(h + hour + ":" + m + min + ":" + s + sec);         return current;     }     /**      * 布局下面的按钮和下拉选项的监听器      */     @SuppressWarnings("deprecation")     @Override     public void actionPerformed(ActionEvent e) {         /**          * 获取dorp_down_hours,dorp_down_minute,drop_down_second的值          */         if (e.getSource() == dorp_down_hours) {             valueJudgment();         }         if (e.getSource() == dorp_down_minute) {             valueJudgment();         }         if (e.getSource() == drop_down_second) {             valueJudgment();         }         if (e.getSource() == stop) {             stopActionPerformed();         }         if (e.getSource() == add1) {             add1Action();             myListener();         }         if (e.getSource() == add5) {             add5Action();             myListener();         }         if (e.getSource() == add30) {             add30Action();             myListener();         }         if (e.getSource() == minus1) {             minus1Action();             myListener();         }         if (e.getSource() == minus5) {             minus5Action();             myListener();         }         if (e.getSource() == minus30) {             minus30Action();             myListener();         }         AlarmSound alarmSound = new AlarmSound(ring_setup.getSelectedIndex());         Thread alarmThread = new Thread(alarmSound);         if (e.getSource() == listening_test) {             // 试听             if (!alarmThread.isAlive()) {                 alarmThread.start();             }             if (running) {                 alarmThread.resume();             }             listening_test.setEnabled(false);         }         if (e.getSource() == listening_test_stop) {             // 停止试听             listening_test.setEnabled(true);             if (running) {                 alarmThread.suspend();             }             running = !running;         }         if (e.getSource() == uploadRing) {             // 上传文件         }         if (e.getSource() == exit) {             // 退出程序             AlarmFile.exit();         }         if (e.getSource() == screenshot) {             // 主窗体隐藏             iconed = true;             MyAlarm.this.setVisible(false);             // 开始截图             AlarmTools.screenshot();         }         if (e.getSource() == changeBackground) {             changeBG();         }         if (e.getSource() == about) {             pointX = getMyAlarmX();             pointY = getMyAlarmY();             new AlarmHelp("关于程序");         }     }     /**      * 更改背景图片</br> 当点击工具-- >更改背景,这里就可以处理更改背景图片      */     private void changeBG() {         setFlagOfBackground(true);         if (background < AlarmBackground.getBackgroundListSize()) {             iconed = true;             setVisible(false);             if (background != AlarmBackground.getBackgroundListSize() - 1) {                 ++background;             } else {                 background = 0;             }             initMainPanel();         }     }     /**      * 点击-30按钮的时候执行的动作      */     private void minus30Action() {         isHMSZero();         if (dorp_down_minute.getSelectedIndex() - 30 < 0) {             dorp_down_minute.setSelectedIndex(dorp_down_minute                     .getSelectedIndex() + 30);// 60-30             if (dorp_down_hours.getSelectedIndex() == 0) {                 dorp_down_hours.setSelectedIndex(24);// 设置为23             } else {                 // 小时数-1                 dorp_down_hours.setSelectedIndex(dorp_down_hours                         .getSelectedIndex() - 1);             }         } else {             // 分钟数-30             dorp_down_minute.setSelectedIndex(dorp_down_minute                     .getSelectedIndex() - 30);         }         valueJudgment();     }     /**      * 点击-5按钮的时候执行的动作      */     private void minus5Action() {         isHMSZero();         if (dorp_down_minute.getSelectedIndex() - 5 < 0) {             dorp_down_minute.setSelectedIndex(dorp_down_minute                     .getSelectedIndex() + 55);// 60-5             if (dorp_down_hours.getSelectedIndex() == 0) {                 dorp_down_hours.setSelectedIndex(24);// 设置为23             } else {                 // 小时数-1                 dorp_down_hours.setSelectedIndex(dorp_down_hours                         .getSelectedIndex() - 1);             }         } else {             // 分钟数-5             dorp_down_minute.setSelectedIndex(dorp_down_minute                     .getSelectedIndex() - 5);         }         valueJudgment();     }     /**      * 点击-1按钮的时候执行的动作      */     private void minus1Action() {         isHMSZero();         if (dorp_down_minute.getSelectedIndex() - 1 == 0) {             dorp_down_minute.setSelectedIndex(60);// 设置为59             if (dorp_down_hours.getSelectedIndex() == 0) {                 dorp_down_hours.setSelectedIndex(24);// 设置为23             } else {                 // 小时数-1                 dorp_down_hours.setSelectedIndex(dorp_down_hours                         .getSelectedIndex() - 1);             }         } else {             // 分钟数-1             dorp_down_minute.setSelectedIndex(dorp_down_minute                     .getSelectedIndex() - 1);         }         valueJudgment();     }     /**      * 判断dorp_down_hours,dorp_down_minute,drop_down_second当前是否为0,即:"关闭"      */     private void isHMSZero() {         // 如果小时数还没有设置,那么就设置为当前小时数         if (dorp_down_hours.getSelectedIndex() == 0) {             dorp_down_hours.setSelectedIndex(getHour() + 1);         }         // 如果分钟数还没有设置,那么就设置为当前分钟数         if (dorp_down_minute.getSelectedIndex() == 0) {             dorp_down_minute.setSelectedIndex(getMunite() + 1);         }         // 如果秒钟还没有设置,那么就设置为当前秒钟         if (drop_down_second.getSelectedIndex() == 0) {             drop_down_second.setSelectedIndex(getSecond());         }     }     /**      * 点击+30按钮的时候执行的动作      */     private void add30Action() {         isHMSZero();         if (dorp_down_minute.getSelectedIndex() + 30 > 60) {             dorp_down_minute.setSelectedIndex(dorp_down_minute                     .getSelectedIndex() - 30);// +30-60             if (dorp_down_hours.getSelectedIndex() > 23) {                 dorp_down_hours.setSelectedIndex(1);// 设置为00             } else {                 // 小时数+1                 dorp_down_hours.setSelectedIndex(dorp_down_hours                         .getSelectedIndex() + 1);             }         } else {             // 分钟数+30             dorp_down_minute.setSelectedIndex(dorp_down_minute                     .getSelectedIndex() + 30);         }         valueJudgment();     }     /**      * 点击+5按钮的时候执行的动作      */     private void add5Action() {         isHMSZero();         if (dorp_down_minute.getSelectedIndex() + 5 > 60) {             dorp_down_minute.setSelectedIndex(dorp_down_minute                     .getSelectedIndex() - 55);// +5-60             if (dorp_down_hours.getSelectedIndex() > 23) {                 dorp_down_hours.setSelectedIndex(1);// 设置为00             } else {                 // 小时数+1                 dorp_down_hours.setSelectedIndex(dorp_down_hours                         .getSelectedIndex() + 1);             }         } else {             // 分钟数+5             dorp_down_minute.setSelectedIndex(dorp_down_minute                     .getSelectedIndex() + 5);         }         valueJudgment();     }     /**      * 点击+1按钮的时候执行的动作      */     private void add1Action() {         isHMSZero();         if (dorp_down_minute.getSelectedIndex() + 1 > 60) {             dorp_down_minute.setSelectedIndex(1);// 设置为00             if (dorp_down_hours.getSelectedIndex() > 23) {                 dorp_down_hours.setSelectedIndex(1);// 设置为00             } else {                 // 小时数+1                 dorp_down_hours.setSelectedIndex(dorp_down_hours                         .getSelectedIndex() + 1);             }         } else {             // 分钟数+1             dorp_down_minute.setSelectedIndex(dorp_down_minute                     .getSelectedIndex() + 1);         }         valueJudgment();     }     /**      * 给h,m,s三个变量赋值,并判断他们的值      */     private void valueJudgment() {         h = dorp_down_hours.getSelectedItem().toString();         m = dorp_down_minute.getSelectedItem().toString();         s = drop_down_second.getSelectedItem().toString();         hsmCheck();     }     /**      * 检查时,分,秒的值,如果都不是"关闭",那么</br>      *       * <li>stop按钮要显示出来</li><br/>      * <li>result要显示出来剩余时间</li><br/>      * <li>ring_setup要设置为不可用</li> <li>listening_test按钮为不可用</li> <li>      * listening_test_stop按钮为不可用</li>      */     private void hsmCheck() {         if (h != "关闭" && m != "关闭" && s != "关闭") {             stop.setVisible(true);             result.setVisible(true);             ring_setup.setEnabled(false);             listening_test.setEnabled(false);             listening_test_stop.setEnabled(false);         }     }     /**      * stop按钮的动作: <li>      * 把dorp_down_hours,dorp_down_minute,drop_down_second的值设置为"关闭"</li> <li>      * 隐藏result</li> <li>ring_setup设置为可用</li> <li>listening_test按钮为可用</li> <li>      * listening_test_stop按钮为可用</li> <li>stop按钮设置为不可见</li><li>停止声音播放</li>      */     private void stopActionPerformed() {         dorp_down_hours.setSelectedIndex(0);         dorp_down_minute.setSelectedIndex(0);         drop_down_second.setSelectedIndex(0);         result.setVisible(false);         ring_setup.setEnabled(true);         listening_test.setEnabled(true);         listening_test_stop.setEnabled(true);         // 这里要停止声音         stop.setVisible(false);     }     /**      * 获取当前小时数      *       * @return 返回当前小时数      */     private int getHour() {         return Calendar.getInstance().get(Calendar.HOUR_OF_DAY);     }     /**      * 获取当前分钟数      *       * @return 返回当前分钟数      */     private int getMunite() {         return Calendar.getInstance().get(Calendar.MINUTE);     }     /**      * 获取当前秒钟数      *       * @return 返回当前秒钟数      */     private int getSecond() {         return Calendar.getInstance().get(Calendar.SECOND);     }     /**      * 实现震动功能      */     public void shack() {         Point p = MyAlarm.this.getLocation();         int x = (int) p.getX();         int y = (int) p.getY();         for (int i = 0; i < 5000; i++) {             MyAlarm.this.setLocation(x - 5, y);             MyAlarm.this.setLocation(x, y + 5);             MyAlarm.this.setLocation(x + 5, y);             MyAlarm.this.setLocation(x, y - 5);         }         MyAlarm.this.setLocation(x, y);     }     /**      * 获取MyAlarm的X坐标      *       * @return 返回MyAlarm的X坐标      */     public int getMyAlarmX() {         return (int) getLocation().getX();     }     /**      * 获取MyAlarm的Y坐标      *       * @return 返回MyAlarm的Y坐标      */     public int getMyAlarmY() {         return (int) MyAlarm.this.getLocation().getY();     }     /**      * 闹铃类      *       * @author Hongten      *       * @time 2012-3-2 2012      */     class AlarmSound implements Runnable {         private String temAlarm;         private String alarm0Path = "src/image/sound/alarm0.wav";//         private String alarm1Path = "src/image/sound/alarm1.wav";//          private String alarm2Path = "src/image/sound/alarm2.wav";//          private String alarm3Path = "src/image/sound/alarm3.wav";//          private String alarm4Path = "src/image/sound/alarm4.wav";//          private String alarm5Path = "src/image/sound/alarm5.wav";//          private String alarm6Path = "src/image/sound/alarm6.wav";//          private String alarm7Path = "src/image/sound/alarm7.wav";//          private String alarm8Path = "src/image/sound/alarm8.wav";//          public AlarmSound(int a) {             switch (a) {             case 0:                 temAlarm = alarm0Path;                 break;             case 1:                 temAlarm = alarm1Path;                 break;             case 2:                 temAlarm = alarm2Path;                 break;             case 3:                 temAlarm = alarm3Path;                 break;             case 4:                 temAlarm = alarm4Path;                 break;             case 5:                 temAlarm = alarm5Path;                 break;             case 6:                 temAlarm = alarm6Path;                 break;             case 7:                 temAlarm = alarm7Path;                 break;             case 8:                 temAlarm = alarm8Path;                 break;             }         }         // 读取声音文件,并且播放出来         public void run() {             File soundFile = new File(temAlarm);             AudioInputStream audioInputStream = null;             try {                 audioInputStream = AudioSystem.getAudioInputStream(soundFile);             } catch (Exception e1) {                 e1.printStackTrace();                 return;             }             AudioFormat format = audioInputStream.getFormat();             SourceDataLine auline = null;             DataLine.Info info = new DataLine.Info(SourceDataLine.class, format);             try {                 auline = (SourceDataLine) AudioSystem.getLine(info);                 auline.open(format);             } catch (Exception e) {                 e.printStackTrace();                 return;             }             auline.start();             int nBytesRead = 0;             byte[] abData = new byte[512];             try {                 while (nBytesRead != -1) {                     nBytesRead = audioInputStream                             .read(abData, 0, abData.length);                     if (nBytesRead >= 0)                         auline.write(abData, 0, nBytesRead);                 }             } catch (IOException e) {                 e.printStackTrace();                 return;             } finally {                 auline.drain();                 auline.close();             }         }     } }
/Alarm/src/com/b510/ui/main/MyTray.java
代码如下:
package com.b510.ui.main; import java.awt.AWTException; import java.awt.Image; import java.awt.MenuItem; import java.awt.PopupMenu; import java.awt.SystemTray; import java.awt.TrayIcon; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.ImageIcon; import javax.swing.JFrame; import com.b510.menu.AlarmFile; import com.b510.menu.AlarmTools; public class MyTray implements ActionListener, MouseListener {     private Image icon;// 图标     private TrayIcon trayIcon;     private SystemTray systemTray;// 系统托盘     private MyAlarm myAlarm; // 托盘所属主窗体     private PopupMenu pop = new PopupMenu(); // 弹出菜单     // 菜单选项     /** 截图 */     private MenuItem screenshot = new MenuItem("ScreenShot");     /** 还原 */     private MenuItem open = new MenuItem("Restore");     /** 退出*/     private MenuItem exit =new MenuItem("Exit");     public MyTray(MyAlarm myAlarm) {         this.myAlarm = myAlarm;         // 得到托盘的图标         icon = new ImageIcon(this.getClass().getClassLoader().getResource(                 "image/mytray.png")).getImage();         if (SystemTray.isSupported()) {             systemTray = SystemTray.getSystemTray();             // 设置鼠标经过图标时,显示的内容             trayIcon = new TrayIcon(icon, "open Alarm", pop);             pop.add(screenshot);             pop.add(open);             pop.add(exit);             // 添加系统托盘             try {                 systemTray.add(trayIcon);             } catch (AWTException e1) {                 e1.printStackTrace();                 trayIcon.addMouseListener(this);             }         }         displayInfoListener();         trayIcon.addMouseListener(this);         exit.addActionListener(this);         open.addActionListener(this);         screenshot.addActionListener(this);     }     @Override     public void actionPerformed(ActionEvent e) {         if(e.getSource()==exit){             //退出系统             AlarmFile.exit();         }else if (e.getSource() == open) {             // 单点击菜单中的"还原"选项时,还原窗口             //displayInfo();             //trayIcon.displayMessage("温馨提示", "hello,world", TrayIcon.MessageType.INFO);             myAlarm.iconed = false;             friendListSet(true);         } else if (e.getSource() == screenshot) {             // 但点击“截图”选项时,进行截图             AlarmTools.screenshot();         }      }     @Override     public void mouseClicked(MouseEvent e) {         // 但鼠标点击一次的时候,进行弹出窗口         if (e.getClickCount() == 1 && e.getButton() != MouseEvent.BUTTON3) {             if (!myAlarm.isVisible()) {                 friendListSet(true);             } else {                 friendListSet(false);             }         }         // 但鼠标点击两次的时候,进行弹出窗口         // 如果窗口有显示,则隐藏窗口,否则显示窗口         if (e.getClickCount() == 2 && e.getButton() != MouseEvent.BUTTON3) {             if (!myAlarm.isVisible()) {                 friendListSet(true);             } else {                 friendListSet(false);             }         }     }     /**      * 设置friendList的可见性      */     private void friendListSet(boolean flag) {         myAlarm.setVisible(true);         myAlarm.setExtendedState(JFrame.NORMAL);     }          public void displayInfoListener() {         new Thread(new Runnable() {// 设置一个线程                     public void run() {                         while (true) {                             try {                                 Thread.sleep(1000);                             } catch (Exception e) {                                 e.printStackTrace();                             }                             if(myAlarm.getSecondOfResult()==30){                                  trayIcon.displayMessage("温馨提示","距闹钟设置时间还剩:\n00 时 00 分 " +myAlarm.getSecondOfResult() + " 秒",TrayIcon.MessageType.INFO);                                  myAlarm.setSecondOfResult(29);                             }                             if(myAlarm.getFlagOfBackground()){                                 trayIcon.displayMessage("温馨提示","您已经更改了背景,点击托盘图标\n可以看到效果,右键托盘图标\n可以进行功能选择。",TrayIcon.MessageType.INFO);                                 myAlarm.setFlagOfBackground(false);                             }                         }                     }                 }).start();     }     @Override     public void mouseEntered(MouseEvent arg0) {         // TODO Auto-generated method stub     }     @Override     public void mouseExited(MouseEvent arg0) {         // TODO Auto-generated method stub     }     @Override     public void mousePressed(MouseEvent arg0) {         // TODO Auto-generated method stub     }     @Override     public void mouseReleased(MouseEvent arg0) {         // TODO Auto-generated method stub     } }
/Alarm/src/com/b510/ui/up/AlarmShowNow.javapackage com.b510.ui.up; import java.util.Calendar; /**  *  * @author Hongten  * 主界面区-显示现在的时间  */ public class AlarmShowNow {     /**      * 获得系统的当前时间,并返回      * @return 返回系统当前时间      */     public static String now() {         Calendar cal = Calendar.getInstance();         int hour = cal.get(Calendar.HOUR_OF_DAY);         int min = cal.get(Calendar.MINUTE);         int sec = cal.get(Calendar.SECOND);         String current = new String(hour+ ":" + min + ":" + sec);         return current;     }    public static void main(String args[]){        System.out.println(now());    } }

附件下载

以上是 java开发之闹钟的实现代码 的全部内容, 来源链接: utcz.com/p/207861.html

回到顶部