Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 385|回复: 0

[Java基础知识]windows定时关电脑程序(JAVA)

[复制链接]
  • TA的每日心情
    开心
    2021-3-12 23:18
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2014-9-30 17:43:42 | 显示全部楼层 |阅读模式
    windows定时关电脑程序:

    1. import java.awt.*;
    2. import java.awt.event.*;
    3. import java.io.IOException;
    4. import java.util.Calendar;
    5. import javax.swing.*;
    6. public class CloseComputer extends JFrame implements ActionListener{
    7.         //创建成员变量
    8.         //创建实现BorderLayout布局的面板对象panelmain,用于放panelSubnorth面板和panelSubcenter面板
    9.         private JPanel panelMain;
    10.         //创建实现FlowLayout布局的面板对象panelSubnorth,用于放tag提示标签
    11.         private JPanel panelSubnorth;
    12.         //创建实现FlowLayout布局的面板对象panelSubcenter,用于放3个按钮
    13.         private JPanel panelSubcenter;
    14.         //创建三个按钮
    15.         private Button countdown;
    16.         private Button time;
    17.         private Button cancel;
    18.         private String key;
    19.         //创建一个提示标签
    20.         private JLabel tag;
    21.         public CloseComputer(){
    22.                 initComponents();
    23.         }
    24.         /**
    25.          * 初始化组件信息
    26.          */
    27.         public void initComponents() {
    28.                 panelMain=new JPanel(new BorderLayout(5, 10));
    29.                 panelSubnorth=new JPanel(new FlowLayout(3));
    30.                 panelSubcenter=new JPanel(new FlowLayout(1,5,5));
    31.                 countdown=new Button("倒计时关机");
    32.                 time=new Button("定时关机");
    33.                 cancel=new Button("取消关机");
    34.                 tag=new JLabel("请选择关机方式");
    35.                 //将panelMain添加到窗体中
    36.                 this.getContentPane().add(panelMain);
    37.                 //添加对象panelSubnorth到对象panelMain窗口里
    38.                 panelMain.add(panelSubnorth, BorderLayout.NORTH);
    39.                 //添加对象panelSubcenter到对象panelMain窗口里
    40.                 panelMain.add(panelSubcenter, BorderLayout.CENTER);
    41.                 //添加标签对象tag到对象panelSubnorth窗口里
    42.                 panelSubnorth.add(tag);
    43.                 //添加3个按钮到对象panelSubcenter里
    44.                 panelSubcenter.add(countdown);
    45.                 panelSubcenter.add(time);
    46.                 panelSubcenter.add(cancel);
    47.                 //为3个按钮注册事件监听器
    48.                 countdown.addActionListener(this);
    49.                 time.addActionListener(this);
    50.                 cancel.addActionListener(this);
    51.                 this.setDefaultCloseOperation(EXIT_ON_CLOSE);
    52.                 this.setResizable(false);
    53.                 this.setLocation(350, 350);
    54.                 this.setSize(400, 400);
    55.                 this.setTitle("关机工具");
    56.                 this.pack();
    57.         }
    58.         /**
    59.          * 倒计时关机
    60.          */
    61.         public void countdown() {
    62.                 //创建字符串面板对象
    63.                 key=JOptionPane.showInputDialog(this,"请输入倒计时关机剩余的时间(秒)","输入框",1);
    64.                 try {
    65.                         Runtime.getRuntime().exec("shutdown -s -t "+key);
    66.                 } catch (IOException e) {
    67.                         // TODO Auto-generated catch block
    68.                         e.printStackTrace();
    69.                 }
    70.         }
    71.         /**
    72.          * 定时关机
    73.          */
    74.         public void time(){
    75.                 //获取当前系统的时间
    76.                 Calendar calendar=Calendar.getInstance();
    77.                 int h=calendar.get(Calendar.HOUR);                //获取小时
    78.                 System.out.println(h);
    79.                 int m=calendar.get(Calendar.MINUTE);        //获取分钟
    80.                 int s=calendar.get(Calendar.SECOND);        //获取秒
    81.                 String hourtmp,minutetmp,secordtmp;                //保存输入的时间
    82.                 int hour,minute,secord;                                        //保存转换后的时间
    83.                 //输入时间
    84.                 hourtmp=JOptionPane.showInputDialog(this,"请输入关机的小时(12小时制)","输入",1);
    85.                 minutetmp=JOptionPane.showInputDialog(this,"请输入关机的分钟","输入",1);
    86.                 secordtmp=JOptionPane.showInputDialog(this,"请输入关机的秒钟","输入",1);
    87.                 //转换时间
    88.                 hour=Integer.parseInt(hourtmp);
    89.                 minute=Integer.parseInt(minutetmp);
    90.                 secord=Integer.parseInt(secordtmp);
    91.                 long setTime=timeSum(hour, minute, secord);        //计算输入时间的总和
    92.                 long currentlyTime=timeSum(h, m, s);                //计算当前系统时间的总和
    93.                 long discrepancyTime=setTime-currentlyTime;        //获取时间差
    94.                 if (discrepancyTime< 0) {
    95.                         try {
    96.                                 Runtime.getRuntime().exec("shutdown -s");
    97.                         } catch (IOException e) {
    98.                                 // TODO Auto-generated catch block
    99.                                 e.printStackTrace();
    100.                         }
    101.                 }else {
    102.                         try {
    103.                                 Runtime.getRuntime().exec("shutdown -s  -t "+discrepancyTime);
    104.                         } catch (IOException e) {
    105.                                 // TODO Auto-generated catch block
    106.                                 e.printStackTrace();
    107.                         }
    108.                         JOptionPane.showMessageDialog(this, "恭喜你,设置成功!", "确认", 2);
    109.                 }
    110.         }
    111.         /**
    112.          * 计算出时间总和,并返回
    113.          * @param h
    114.          * @param m
    115.          * @param s
    116.          * @return
    117.          */
    118.         public int timeSum(int h,int m,int s) {
    119.                 int sum=h*3600+m*60+s;
    120.                 return sum;
    121.         }
    122.         /**
    123.          * 取消关机
    124.          */
    125.         public void cancel() {
    126.                 JOptionPane.showMessageDialog(this, "你已经成功取消了关机操作!", "消息", 2);
    127.                 try {
    128.                         Runtime.getRuntime().exec("shutdown -a");
    129.                 } catch (IOException e) {
    130.                         // TODO Auto-generated catch block
    131.                         e.printStackTrace();
    132.                 }
    133.         }
    134.         public static void main(String[] args) {
    135.                 java.awt.EventQueue.invokeLater(new Runnable() {
    136.                         @Override
    137.                         public void run() {
    138.                                 // TODO Auto-generated method stub
    139.                                 new CloseComputer().setVisible(true);
    140.                         }
    141.                 });
    142.         }
    143.        
    144.         @Override
    145.         public void actionPerformed(ActionEvent e) {
    146.                 // TODO Auto-generated method stub
    147.                 if (e.getSource() == countdown) {
    148.                         countdown();
    149.                 }
    150.                 if (e.getSource() == time) {
    151.                         time();
    152.                 }
    153.                 if (e.getSource() == cancel) {
    154.                         cancel();
    155.                 }
    156.         }
    157. }
    复制代码
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-5-20 17:29 , Processed in 0.344123 second(s), 34 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表