java swing做的定时关机精灵

来源:互联网 发布:成都旅游 知乎 编辑:程序博客网 时间:2024/05/21 17:17

链接:定时关机精灵下载

上班闲暇时做的swing小程序,仅供java初学者和爱好者参考学习!
源码:

package shutdown;import java.awt.Color;import java.awt.Font;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JComboBox;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;public class ShutDownWindows extends JFrame implements ActionListener{private static final long serialVersionUID = 1L;private JPanel jp;private JComboBox<Integer> comboBoxHour;private JComboBox<Integer> comboBoxMinute;private JComboBox<Integer> comboBoxSecond;private JLabel jlMinute;private JLabel jlHour;private JLabel jlSecond;private static JButton jRestTime;private JButton j1;private JButton j2;public static boolean stop = false;static int hourTime;static int minuteTime;static int secondTime;public ShutDownWindows(){setSize(300,210);setTitle("定时关机精灵");setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);int screenX = Toolkit.getDefaultToolkit().getScreenSize().width;int screenY = Toolkit.getDefaultToolkit().getScreenSize().height;int frameX = this.getSize().width;int frameY = this.getSize().height;setLocation(screenX-frameX, screenY-frameY-40);setAlwaysOnTop(true);//setLocationRelativeTo(null);setResizable(false);jp = new JPanel();jp.setBackground(new Color(180,245,212));init();add(jp);setVisible(true);}/* * 初始化函数 */public void init(){comboBoxHour = new JComboBox<Integer>();for(int i=0; i<=23; i++){comboBoxHour.addItem(i);}jlHour = new JLabel("小时");comboBoxMinute = new JComboBox<Integer>();for(int i=0; i<=59; i++){comboBoxMinute.addItem(i);}jlMinute = new JLabel("分");comboBoxSecond = new JComboBox<Integer>();for(int i=1; i<=59; i++){comboBoxSecond.addItem(i);}jlSecond = new JLabel("秒");j1 = new JButton("定时关机");j2 = new JButton("取消关机");j1.addActionListener(this);j2.addActionListener(this);j1.setEnabled(true);j2.setEnabled(false);jRestTime = new JButton("     00:00:00     ");jRestTime.setBorder(null);jRestTime.setFont(new Font("宋体",Font.BOLD,60));jRestTime.setBackground(new Color(97,199,147));JLabel jl = new JLabel("距离关机还有:       ");jl.setFont(new Font("宋体",Font.BOLD,26));JLabel jSetTime = new JLabel("设置时间:");jp.add(jSetTime);jp.add(comboBoxHour);jp.add(jlHour);jp.add(comboBoxMinute);jp.add(jlMinute);jp.add(comboBoxSecond);jp.add(jlSecond);jp.add(jl);jp.add(jRestTime);jp.add(j1);jp.add(j2);}public void ChooseTime(){hourTime = (int)comboBoxHour.getSelectedItem()*3600;minuteTime = (int)comboBoxMinute.getSelectedItem()*60;secondTime = (int)comboBoxSecond.getSelectedItem();int totalTime = hourTime+minuteTime+secondTime;Runtime runtime = Runtime.getRuntime();try {runtime.exec("cmd /c start shutdown.exe -s -t "+totalTime+"");ShutDownWindows.CountDown();stop = false;/*// 设置窗口状态(最小化至托盘)              setExtendedState(JFrame.ICONIFIED);*/} catch (Exception e) {System.out.println("Error!");}}public void CannelPlan(){Runtime runtime = Runtime.getRuntime();try {runtime.exec("cmd /c start shutdown -a");stop = true;} catch (Exception e) {System.out.println("Error!");}}public static void CountDown(){new Thread(){public void run(){int hour = hourTime/3600;int minute = minuteTime/60;while(secondTime != 0){try {Thread.sleep(1000);secondTime--;if(stop){Thread.sleep(999999999);}if(secondTime == 0 && minute != 0){secondTime = 59;minute -= 1;}else if(secondTime == 0 && minute == 0 && hour != 0){secondTime = 59;minute = 59;hour -= 1;}else if(secondTime == 0 && minute == 0 &&  hour == 0){jRestTime.setText("     "+hour+":"+minute+":"+secondTime+"     ");break;}jRestTime.setText("     "+hour+":"+minute+":"+secondTime+"     ");} catch (InterruptedException e) {e.printStackTrace();}}}}.start();}@Overridepublic void actionPerformed(ActionEvent e) {if(e.getSource()==j1){ChooseTime();j1.setEnabled(false);j2.setEnabled(true);}if(e.getSource()==j2){CannelPlan();j1.setEnabled(true);j2.setEnabled(false);}}public static void main(String[] args) {new ShutDownWindows();}}

链接:定时关机精灵下载

0 0
原创粉丝点击