「java定时退出」java定时关机代码

博主:adminadmin 2022-11-24 14:39:10 54

本篇文章给大家谈谈java定时退出,以及java定时关机代码对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

在windows xp系统的非管理员用户下如何用java程序定时自动关闭计算机机?

把管理员的权限改一下不就行了么,要不就在运行里输入shutdown

-s

-t

60

可以的啊!

java 线程定时关闭

int count=0; 

Timer timer = new Timer();

  timer.schedule(new TimerTask() {

   @Override

   public void run() {

    count++;

    if(count=90){

        执行操作,线程开启。

   }

  }, new Date(), 1000);

java定时器怎么停止

1、scheduleUpdate

加入当前节点后,程序会每帧都会自动执行一次默认的Update函数。(注:一定是Update函数哦,若想调用其他自己命名的函数则使用schedule)

看例子,走起。

首先在HelloWord类的头文件中声明Update函数:

[cpp] view plain copy print?

void update(float dt); //注意参数类型

然后在HelloWorld类源文件中实现函数Update:

[cpp] view plain copy print?

void HelloWorld::update(float dt)

{

CCLOG("baibai");

}

现在我们可以调用了,在需要他不断执行的地方加入调用的代码就ok:

[cpp] view plain copy print?

this-scheduleUpdate(); //this是当前节点,如layer,所以可以省略啦。

运行之后你将会看到不断有baibai被打印出来

2、scheduleUpdate

可以没隔几秒执行某个自定义的函数,来看代码:

首先还是在HelloWorld中声明所要执行的函数:

java定时器timer怎么退出

手动关闭,异常退出。

全局计数,达到临界值退出。

timer.cancel();

java定时让线程停止

我这儿有一个过年前写的定时关机程序你可以拿去参考下~

程序里的取消功能跟你要的差不多

import java.awt.FlowLayout;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.io.IOException;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import javax.swing.JButton;

import javax.swing.JComboBox;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

/**

* 此类为定时关机的主界面类

* 这几天一直都在搞我的聊天程序,哎 但是技术问题,一直都做不走

* 之前一直都想写个定时关机程序,一直都是没时间,

* 现在那边做不走了,我就做做这个简单的,找点自信

* @author 程胜

* @date 09年1月24

* @address 家

* @version 0.1

*

*/

public class ShutDown extends JFrame{

private static final long serialVersionUID = 1L;

private JPanel pCenter=new JPanel();

private JPanel pNorth=new JPanel();

private JPanel pSouth=new JPanel();

private JButton bExit=new JButton("退出");

//用于显示当前时间

JLabel currentTime=new JLabel();

JButton bStart=new JButton("启动");

JButton bCancel=new JButton("取消");

JLabel info=new JLabel("请设定关机时间…………");

//此下拉框用于选择关机的小时

JComboBox hour=null;

//此下拉框用于先择关机的分钟

JComboBox minute=null;

/**

* 构造函数初始化界面

*/

public ShutDown(){

super("定时关机小程序verson0.1");

this.setSize(250,150);

addContent();

addEvent();

//改变大小不可用

this.setResizable(false);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setLocationRelativeTo(this);

this.setVisible(true);

}

/**

* 为按钮添加事件监听

*/

private void addEvent() {

ActionListener buttonListen=new SetEvent();

bStart.addActionListener(buttonListen);

bCancel.addActionListener(buttonListen);

bExit.addActionListener(buttonListen);

}

/**

* 为界面添加内容

*/

private void addContent() {

//新建一个匿名线程,用于显示当前时间

new Thread(new Runnable(){

public void run(){

SimpleDateFormat sdf=new SimpleDateFormat("MM'月'dd'日'HH:mm:ss");

//Thread.interrupted()为判断线程是否中断

while(!Thread.interrupted()){

//获取当前时间

Calendar current=Calendar.getInstance();

ShutDown.this.currentTime.setText("当前时间为:"+sdf.format(current.getTime()));

try {

//休眠一秒

Thread.sleep(1000);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

}).start();

//新建用于显示小时和分钟的字符串数组

String[] lHour=new String[24];

String[] lMinute=new String[60];

for(int i=0;i24;i++){

lHour[i]=i+"";

}

for(int i=0;i60;i++){

lMinute[i]=i+"";

}

hour=new JComboBox(lHour);

minute=new JComboBox(lMinute);

JLabel xiaoshi=new JLabel("时");

JLabel fen=new JLabel("分");

bCancel.setEnabled(false);

pNorth.setLayout(new FlowLayout());

pNorth.add(new JLabel("请设定关机时间:"));

pNorth.add(hour);pNorth.add(xiaoshi);

pNorth.add(minute);pNorth.add(fen);

pSouth.add(bStart);pSouth.add(bCancel);pSouth.add(bExit);

pCenter.setLayout(new GridLayout(2,1));

pCenter.add(currentTime);

pCenter.add(info);

this.add(pCenter,"Center");

this.add(pNorth,"North");

this.add(pSouth,"South");

}

/**

* @param args

*/

public static void main(String[] args) {

//设置外观

JFrame.setDefaultLookAndFeelDecorated(true);

new ShutDown();

}

/**

* 内置类,用于处理事件

* @author 程胜

*

*/

class SetEvent implements ActionListener{

//用于存放关机的操作类

private Shut shut=null;

private String hour="";

private String minute="";

//获得界面类

private ShutDown shutDown=ShutDown.this;

public void actionPerformed(ActionEvent e) {

//如果事件为启动按钮触发

if(e.getSource()==bStart){

//获取下拉框中的数据

hour=shutDown.hour.getSelectedItem().toString();

minute=shutDown.minute.getSelectedItem().toString();

handleStart();

}else{

//如果事件为取消按钮触发

if(e.getSource()==bCancel){

//取消操作

handleCancel();

}else{

//如果事件为退出按钮触发,则退出系统

System.exit(0);

}

}

}

/**

* 取消按钮的事件的处理方法

*/

private void handleCancel() {

//如果关机类还在活动

if(shut.isAlive()){

//停止关机类线程

shut.stop();

}

//修改界面显示

shutDown.info.setText("您取消了之前设定的定时关机!");

shutDown.hour.setEnabled(true);

shutDown.minute.setEnabled(true);

shutDown.bStart.setEnabled(true);

shutDown.bCancel.setEnabled(false);

}

/**

* 启动按钮的事件的处理方法

*/

private void handleStart() {

shutDown.info.setText("您设置的关机时间是"+(hour.length()==1?"0"+hour:hour)+"时"+(minute.length()==1?"0"+minute:minute)+"分");

shutDown.hour.setEnabled(false);

shutDown.minute.setEnabled(false);

shutDown.bStart.setEnabled(false);

shutDown.bCancel.setEnabled(true);

//新建并启动关机线程

shut=new Shut(Byte.parseByte(hour),Byte.parseByte(minute));

shut.start();

}

}

}

/**

* 此类为实现关机操作的类,是一个线程类

* @author Administrator

*

*/

class Shut extends Thread{

//获取当前日期及时间

private Calendar shutTime=Calendar.getInstance();

private Calendar currentTime;

private byte hour=0;

private byte minute=0;

public Shut(byte hour,byte minute){

this.hour=hour;

this.minute=minute;

}

/* 覆写run方法

*

*/

public void run(){

//调用关机时间处理方法

handleTime();

while(!Thread.interrupted()){

//循环获取系统时间

currentTime=Calendar.getInstance();

//如果关机时间在当前时间之前

if(shutTime.before(currentTime)){

//调用关机方法

shutDown();

//退出系统

System.exit(0);

}

try {

//线程休眠一秒

Thread.sleep(1000);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

/**

* 关机方法

*/

private void shutDown() {

String shutdown="shutdown -s";

Runtime rt=Runtime.getRuntime();

try {

rt.exec(shutdown);

} catch (IOException e) {

e.printStackTrace();

}

}

/**

* 用于计算关机的时间

*/

private void handleTime() {

java.util.Date date=new java.util.Date();

if(date.getHours()hour){

date.setDate(date.getDate()+1);

}if(date.getHours()==hour){

if(date.getMinutes()minute){

date.setDate(date.getDate()+1);

}

}

date.setHours(hour);date.setMinutes(minute);

date.setSeconds(0);

shutTime.setTime(date);

}

}

在Java中如何实现计时的这样一个功能,比如在限定时间完成游戏,没有完成就退出,怎么限定的时间呢?

//可以启动一个线程来做时间计算

//也可以用timer来实现定时 timer使用wait 我这里用sleep

//关键不是用什么而是用线程来解决问题

import java.util.Scanner;

public class Test {

public static void main(String[] args) {

Runnable r = new Runnable() {

final long start = System.currentTimeMillis() ;

public void run() {

try {

while(true) {

Thread.sleep(1000);

long now = System.currentTimeMillis();

if(now-start=10000) {

System.out.println("打字时间结束了");

System.exit(0);

}

}

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

};

System.out.println("可以开始打字了,10秒后就不能打了");

Scanner s = new Scanner(System.in);

Thread t = new Thread(r);

t.start();

while(s.hasNext()) {

System.out.println(s.nextLine());

}

}

}

java定时退出的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java定时关机代码、java定时退出的信息别忘了在本站进行查找喔。

The End

发布于:2022-11-24,除非注明,否则均为首码项目网原创文章,转载请注明出处。